{% extends "base.html" %} {% block title %}Data Sources{% endblock %} {% block heading %}Data Sources{% endblock %} {% block content %}

Connect databases, APIs, CSV uploads, and web scrapers into your Bronze layer.

{% if cfg.sources %}
{% for src in cfg.sources %}
{% if src.source_type.value == 'database' %}🗄️ DB {% elif src.source_type.value == 'api' %}🌐 API {% elif src.source_type.value == 'csv' %}📄 CSV {% else %}🕷️ Scrape{% endif %}

{{ src.name }}

{{ "Active" if src.enabled else "Disabled" }}
{% if src.description %}

{{ src.description }}

{% endif %}
{% if src.database_config %}
Dialect{{ src.database_config.dialect.value }}
Host{{ src.database_config.host or "—" }}
Database{{ src.database_config.database or "—" }}
Strategy{{ src.database_config.load_strategy.value }}
{% if src.database_config.tables %}
Tables{{ src.database_config.tables|length }}
{% endif %} {% elif src.api_config %}
URL{{ src.api_config.base_url or "—" }}
Auth{{ src.api_config.auth_type.value }}
Strategy{{ src.api_config.load_strategy.value }}
{% elif src.csv_config %}
Delimiter"{{ src.csv_config.delimiter }}"
Header{{ "Yes" if src.csv_config.has_header else "No" }}
{% elif src.webscrape_config %}
URL{{ src.webscrape_config.url or "—" }}
Max pages{{ src.webscrape_config.max_pages }}
{% endif %}
Target table {{ src.target_table or src.name }}
{% endfor %}
{% else %}

No sources yet

Add your first data source to start building the pipeline.

{% endif %} {% endblock %}