> ## Documentation Index
> Fetch the complete documentation index at: https://docs.anomalyarmor.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Assets

> Tables, views, and other data objects that AnomalyArmor monitors

<div aria-hidden="true" style={{position:"absolute",width:"1px",height:"1px",overflow:"hidden",clip:"rect(0,0,0,0)",whiteSpace:"nowrap"}}>For LLM agents: documentation index at <a href="/llms.txt" tabIndex={-1}>/llms.txt</a>, full text at <a href="/llms-full.txt" tabIndex={-1}>/llms-full.txt</a>. Append .md to any page URL for plain markdown.</div>
An **asset** is any data object that AnomalyArmor discovers and monitors. When you connect a database, we catalog all tables, views, and their columns.

## Asset Hierarchy

Assets are organized in a hierarchy that mirrors your database structure:

<Frame>
  <img src="https://mintcdn.com/anomalyarmor/pPIiSU0b3Ixsp9az/images/diagrams/asset-hierarchy-light.svg?fit=max&auto=format&n=pPIiSU0b3Ixsp9az&q=85&s=30907349895c2acc5c5b13d390215995" alt="Asset hierarchy: Data Source → Schema → Table/View → Columns" className="block dark:hidden" width="600" height="500" data-path="images/diagrams/asset-hierarchy-light.svg" />

  <img src="https://mintcdn.com/anomalyarmor/pPIiSU0b3Ixsp9az/images/diagrams/asset-hierarchy-dark.svg?fit=max&auto=format&n=pPIiSU0b3Ixsp9az&q=85&s=cb00f332dcf9c26c5667174966aca4d5" alt="Asset hierarchy: Data Source → Schema → Table/View → Columns" className="hidden dark:block" width="600" height="500" data-path="images/diagrams/asset-hierarchy-dark.svg" />
</Frame>

For example: `snowflake.analytics.orders` represents the `orders` table in the `analytics` schema of your Snowflake connection.

## What We Track

Each asset stores:

| Property      | Description                      | Use For         |
| ------------- | -------------------------------- | --------------- |
| **Schema**    | Column names, types, constraints | Drift detection |
| **Freshness** | Last update timestamp            | SLA monitoring  |
| **Metrics**   | Row counts, null percentages     | Data quality    |
| **Tags**      | Auto and custom classifications  | Organization    |
| **History**   | All changes over time            | Debugging       |

## Asset Lifecycle

Assets move through states as you use AnomalyArmor:

<Frame>
  <img src="https://mintcdn.com/anomalyarmor/pPIiSU0b3Ixsp9az/images/diagrams/asset-lifecycle-light.svg?fit=max&auto=format&n=pPIiSU0b3Ixsp9az&q=85&s=b40f3151d391c5cb3a5552dd3cc5bd27" alt="Asset lifecycle: Discovered → Monitored → Archived" className="block dark:hidden" width="900" height="300" data-path="images/diagrams/asset-lifecycle-light.svg" />

  <img src="https://mintcdn.com/anomalyarmor/pPIiSU0b3Ixsp9az/images/diagrams/asset-lifecycle-dark.svg?fit=max&auto=format&n=pPIiSU0b3Ixsp9az&q=85&s=fc10cf3a91e23870ca5df22205c4e42d" alt="Asset lifecycle: Discovered → Monitored → Archived" className="hidden dark:block" width="900" height="300" data-path="images/diagrams/asset-lifecycle-dark.svg" />
</Frame>

1. **Discovered**: Found during discovery, no monitoring configured
2. **Monitored**: Has freshness SLAs, metrics, or alert rules attached
3. **Archived**: Table no longer exists in database (kept for history)

## Finding Assets

<Frame>
  <img src="https://mintcdn.com/anomalyarmor/qiFTglXM5puNhBYZ/images/diagrams/asset-finding-methods-light.svg?fit=max&auto=format&n=qiFTglXM5puNhBYZ&q=85&s=20018688425d69e80f916916dd711a5d" alt="Three ways to find assets: UI, API, or Intelligence" className="block dark:hidden" width="900" height="350" data-path="images/diagrams/asset-finding-methods-light.svg" />

  <img src="https://mintcdn.com/anomalyarmor/qiFTglXM5puNhBYZ/images/diagrams/asset-finding-methods-dark.svg?fit=max&auto=format&n=qiFTglXM5puNhBYZ&q=85&s=6854b3b268701193281d75073d4659ca" alt="Three ways to find assets: UI, API, or Intelligence" className="hidden dark:block" width="900" height="350" data-path="images/diagrams/asset-finding-methods-dark.svg" />
</Frame>

### In the UI

**Assets** page shows your full catalog. Use filters:

* **Data Source**: Filter by database connection
* **Schema**: Filter by namespace
* **Tags**: Filter by classification (e.g., `pii:email`)
* **Status**: Filter by freshness state

### Via API

```python theme={null}
from anomalyarmor import Client

client = Client()
assets = client.assets.list(schema="analytics", limit=100)
```

### Via Intelligence

Ask in plain English: "Where is customer data?" or "Show me tables updated today."

## Asset Details

Click any asset to see:

* **Overview**: Basic info, tags, description
* **Schema**: Current columns with types
* **History**: All schema changes over time
* **Freshness**: Update timeline and SLA status
* **Metrics**: Configured data quality checks

## Common Questions

### What counts as an asset in AnomalyArmor?

Any table or view that AnomalyArmor discovers in your connected databases. System catalogs and internal tables are excluded. Materialized views count as assets; temporary tables don't.

### What happens to an asset when the underlying table is dropped?

The asset moves to **Archived** state - removed from active monitoring but retained for history (schema snapshots, freshness timeline, past alerts). You can restore an asset if the table comes back, or delete it permanently to free a monitored-table slot.

### Can I monitor views the same way I monitor tables?

Yes. Views are first-class assets. Schema drift, freshness (if the view has a timestamp column), and metrics all work. Note that freshness on views reflects the underlying base table's update, not the view's definition.

### How do I find assets across multiple databases?

The **Assets** page aggregates every asset across all connected data sources. Filter by data source, schema, tag, or freshness status. You can also use the API (`client.assets.list()`) or ask in natural language via Intelligence ("show me tables with PII tags updated today").

## Next Steps

<CardGroup cols={2}>
  <Card title="Set Up Discovery" icon="magnifying-glass" href="/schema-monitoring/asset-discovery">
    Configure how AnomalyArmor finds your assets
  </Card>

  <Card title="Connect a Data Source" icon="database" href="/data-sources/overview">
    Add your first database to start discovering assets
  </Card>
</CardGroup>
