{ "version": "1.0.0", "repository": "https://github.com/eric-thomas-dagster/dagster-component-templates", "last_updated": "2026-07-02", "components": [ { "id": "ab_controls", "name": "ABControls", "category": "analytics", "description": "Compute required sample size for an A/B test given baseline rate, MDE, and power.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/ab_controls", "tags": [ "analytics", "ab-testing", "power-analysis", "sample-size" ], "dependencies": { "pip": [ "pandas", "scipy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ab_controls/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ab_controls/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ab_controls/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ab_controls/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ab_controls/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/ab_full_pipeline.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with user_id + control-group assignment.", "outputs": "DataFrame with control-group summary metrics.", "side_effects": "For A/B experiment analysis; typically feeds ab_test_analysis.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "ab_test_analysis", "name": "A/B Test Analysis", "category": "analytics", "description": "Component for A/B test statistical analysis.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/ab_test_analysis", "tags": [ "analytics", "test", "analysis" ], "dependencies": { "pip": [ "pandas>=1.5.0", "numpy>=1.20.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ab_test_analysis/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ab_test_analysis/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ab_test_analysis/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ab_test_analysis/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ab_test_analysis/requirements.txt", "icon": "BarChart2", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/ab_full_pipeline.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with control/treatment labels + metric columns.", "outputs": "DataFrame with test statistics per metric: lift, p-value, confidence intervals, significance.", "side_effects": "Reduces to one row per metric. Column set changes.", "anti_uses": "Not for cohort retention (use cohort_analysis). Not for time-series (use arima_forecast).", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ] }, { "id": "ab_treatments", "name": "ABTreatments", "category": "analytics", "description": "Deterministically assign each user to a control/treatment variant via hashing.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/ab_treatments", "tags": [ "analytics", "ab-testing", "experiment", "assignment" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ab_treatments/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ab_treatments/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ab_treatments/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ab_treatments/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ab_treatments/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/ab_full_pipeline.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with user_id + treatment-group assignment.", "outputs": "DataFrame with treatment-group summary metrics.", "side_effects": "For A/B experiment analysis; typically feeds ab_test_analysis.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "ab_trend", "name": "ABTrend", "category": "analytics", "description": "Compute conversion-rate trend per variant over time buckets (daily, weekly, monthly).", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/ab_trend", "tags": [ "analytics", "ab-testing", "trend" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ab_trend/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ab_trend/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ab_trend/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ab_trend/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ab_trend/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/ab_full_pipeline.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with time-series conversion metrics for A/B groups.", "outputs": "DataFrame with per-day / per-week trend lines.", "side_effects": "For monitoring experiment lift over time.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "abinitio_job_sensor", "name": "Ab Initio Job Sensor", "category": "sensor", "description": "Resource for connecting to Ab Initio EME REST API.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/abinitio_job_sensor", "tags": [ "sensor", "abinitio", "job" ], "dependencies": { "pip": [ "requests>=2.28.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/abinitio_job_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/abinitio_job_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/abinitio_job_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/abinitio_job_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/abinitio_job_sensor/requirements.txt", "icon": "Radar", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "sensor" ], "agent_hints": {} }, { "id": "abinitio_run_asset", "name": "Ab Initio Run Asset", "category": "infrastructure", "description": "Resource for connecting to Ab Initio EME REST API.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/infrastructure/abinitio_run_asset", "tags": [ "infrastructure", "abinitio", "run", "asset" ], "dependencies": { "pip": [ "requests>=2.28.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/abinitio_run_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/abinitio_run_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/abinitio_run_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/abinitio_run_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/abinitio_run_asset/requirements.txt", "icon": "Server", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "acceldata_check", "name": "Acceldata Check", "category": "check", "description": "Trigger an Acceldata rule execution and surface results as a Dagster asset check.", "version": "1.0.0", "author": "Dagster Community", "path": "asset_checks/acceldata_check", "tags": [ "check", "acceldata" ], "dependencies": { "pip": [ "requests>=2.28.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/acceldata_check/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/acceldata_check/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/acceldata_check/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/acceldata_check/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/acceldata_check/requirements.txt", "icon": "CheckCircle", "validation": { "level": "live", "last_validated": "2026-05-11" }, "produces": [ "asset_check" ], "agent_hints": {}, "consumes": [ "resource:acceldata" ] }, { "id": "acord_xml_parser", "name": "ACORD XML Parser", "category": "transformation", "description": "Parse ACORD insurance XML envelopes (policies, claims, quotes) into a flat DataFrame.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/acord_xml_parser", "tags": [ "acord-xml-parser", "transforms", "insurance", "xml" ], "dependencies": { "pip": [ "dagster", "pandas", "tabulate" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/acord_xml_parser/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/acord_xml_parser/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/acord_xml_parser/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/acord_xml_parser/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/acord_xml_parser/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "ad_spend_standardizer", "name": "Ad Spend Standardizer", "category": "analytics", "description": "Component for standardizing advertising spend data across platforms.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/ad_spend_standardizer", "tags": [ "analytics", "spend", "standardizer" ], "dependencies": { "pip": [] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ad_spend_standardizer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ad_spend_standardizer/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ad_spend_standardizer/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ad_spend_standardizer/example.yaml", "icon": "BarChart2", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ad_spend_standardizer/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame from a specific ad-platform export (Google Ads / Facebook Ads / etc.).", "outputs": "DataFrame with standardized columns: date, platform, campaign_id, campaign_name, impressions, clicks, cost, conversions.", "side_effects": "Enables unified reporting across vendors." }, "produces": [ "asset", "asset_check" ] }, { "id": "adaptive_research_brief", "name": "Adaptive Research Brief", "category": "ai", "description": "Planner LLM decides N sub-topics at runtime for a given research topic. Row-wise researcher LLM writes a note per subtopic; synthesizer combines into a markdown brief. Where DynamicOutput / dynamic partitions fits \u2014 N is truly runtime-decided per run.", "path": "assets/ai/adaptive_research_brief", "tags": [ "ai", "agent", "agentic", "planner", "research", "openai", "dynamic-output" ], "icon": "Sparkles", "type": "dagster_community_components.AdaptiveResearchBriefComponent", "component_type": "dagster_community_components.AdaptiveResearchBriefComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/adaptive_research_brief/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/adaptive_research_brief/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/adaptive_research_brief/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/adaptive_research_brief/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/adaptive_research_brief/requirements.txt", "dependencies": { "pip": [ "pandas", "openai>=1.0.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/adaptive_research_brief.md", "last_validated": "2026-07-07" }, "version": "1.0.0", "author": "Dagster Community", "produces": [ "asset" ], "agent_hints": { "output_type": "pd.DataFrame" } }, { "id": "address_standardize", "name": "Address Standardize", "category": "transformation", "description": "Parse messy address strings into structured components (street, city, state, ZIP, ZIP+4, country) using libpostal / Geoapify / Nominatim / regex. Free / open-source drop-in for Alteryx CASS.", "path": "assets/transforms/address_standardize", "tags": [ "transformation", "address", "geocoding", "data-quality", "alteryx" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/address_standardize/schema.json", "component_type": "dagster_community_components.AddressStandardizeComponent", "icon": "MapPin", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/address_standardize/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/address_standardize/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/address_standardize/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/address_standardize/requirements.txt", "validation": { "level": "code", "last_validated": "2026-06-06" }, "agent_hints": { "inputs": "DataFrame with a raw address column.", "outputs": "Same rows + parsed components (street, city, state, postal, country) OR standardized address string.", "side_effects": "Adds columns. Requires libpostal or an external service.", "anti_uses": "For verified/validated addresses use precisely_address_verify (paid). Not for geocoding (use points_from_latlon after geocoding).", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "requests" ] }, "produces": [ "asset" ] }, { "id": "adls_cleanup_job", "name": "AdlsCleanupJobComponent", "category": "jobs", "description": "Delete Azure ADLS Gen2 / Blob objects older than N days under a prefix.", "version": "1.0.0", "author": "Dagster Community", "path": "jobs/adls_cleanup_job", "tags": [ "job", "azure", "adls", "blob", "cleanup", "retention" ], "dependencies": { "pip": [ "azure-storage-blob", "azure-identity" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/adls_cleanup_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/adls_cleanup_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/adls_cleanup_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/adls_cleanup_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/adls_cleanup_job/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "job", "schedule" ], "agent_hints": {}, "capabilities": [ "adls_object.delete" ], "consumes": [ "resource:adls" ] }, { "id": "adls_monitor", "name": "ADLS Monitor", "category": "sensor", "description": "Component for monitoring Azure Data Lake Storage Gen2 for new files.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/adls_monitor", "tags": [ "sensor", "adls", "monitor" ], "dependencies": { "pip": [ "azure-storage-file-datalake>=12.0.0", "azure-identity>=1.12.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/adls_monitor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/adls_monitor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/adls_monitor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/adls_monitor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/adls_monitor/requirements.txt", "icon": "si:microsoftazure", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/adls_inbox.md", "last_validated": "2026-05-06" }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:adls" ] }, { "id": "adls_observation_sensor", "name": "ADLS Observation Sensor", "category": "observation", "description": "AdlsObservationSensorComponent", "version": "1.0.0", "author": "Dagster Community", "path": "observations/adls_observation_sensor", "tags": [ "observation", "adls", "sensor" ], "dependencies": { "pip": [ "azure-storage-file-datalake>=12.0.0", "azure-identity>=1.10.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/adls_observation_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/adls_observation_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/adls_observation_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/adls_observation_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/adls_observation_sensor/requirements.txt", "icon": "si:microsoftazure", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:adls" ] }, { "id": "adls_to_database_asset", "name": "ADLS to Database", "category": "ingestion", "description": "Read a file from ADLS Gen2 and write it to a database table.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/adls_to_database_asset", "tags": [ "ingestion", "adls", "database", "asset" ], "dependencies": { "pip": [ "azure-storage-blob>=12.0.0", "pandas>=1.3.0", "sqlalchemy>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/adls_to_database_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/adls_to_database_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/adls_to_database_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/adls_to_database_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/adls_to_database_asset/requirements.txt", "icon": "si:microsoftazure", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/adls_inbox.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 reads objects from Azure Data Lake, writes to DB.", "outputs": "None (sink-like).", "side_effects": "Requires azure_credentials + database_connection.", "anti_uses": "For DataFrame return use file_ingestion with abfss:// URL.", "requires_resources": [ "azure_credentials", "database_connection" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:adls" ] }, { "id": "airbyte_assets", "name": "AirbyteAssets", "category": "integration", "description": "Import each Airbyte connection as a Dagster external asset via dagster-airbyte.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/airbyte_assets", "tags": [ "integration", "airbyte", "elt", "official" ], "dependencies": { "pip": [ "dagster", "dagster-airbyte" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/airbyte_assets/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/airbyte_assets/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/airbyte_assets/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/airbyte_assets/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/airbyte_assets/requirements.txt", "validation": { "level": "live", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:airbyte" ] }, { "id": "airbyte_sync_sensor", "name": "Airbyte Sync Sensor", "category": "sensor", "description": "Trigger a job when an Airbyte connection sync completes.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/airbyte_sync_sensor", "tags": [ "sensor", "airbyte", "sync" ], "dependencies": { "pip": [ "requests>=2.28.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/airbyte_sync_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/airbyte_sync_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/airbyte_sync_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/airbyte_sync_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/airbyte_sync_sensor/requirements.txt", "icon": "si:airbyte", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:airbyte" ] }, { "id": "airbyte_sync_trigger_job", "name": "AirbyteSyncTriggerJobComponent", "category": "jobs", "description": "Trigger an Airbyte connection sync via REST API \u2014 fire-and-forget or wait for completion.", "version": "1.0.0", "author": "Dagster Community", "path": "jobs/airbyte_sync_trigger_job", "tags": [ "job", "airbyte", "trigger", "elt" ], "dependencies": { "pip": [ "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/airbyte_sync_trigger_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/airbyte_sync_trigger_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/airbyte_sync_trigger_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/airbyte_sync_trigger_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/airbyte_sync_trigger_job/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "job", "schedule" ], "agent_hints": {}, "capabilities": [ "airbyte_sync.trigger" ], "consumes": [ "resource:airbyte" ] }, { "id": "airflow_dag_proxy", "name": "AirflowDagProxy", "category": "integration", "description": "Convert an Airflow DAG to Dagster definitions via dagster-airflow.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/airflow_dag_proxy", "tags": [ "integration", "airflow", "migration", "official" ], "dependencies": { "pip": [ "dagster", "dagster-airflow" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/airflow_dag_proxy/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/airflow_dag_proxy/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/airflow_dag_proxy/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/airflow_dag_proxy/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/airflow_dag_proxy/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "multi_asset" ], "agent_hints": {}, "consumes": [ "resource:airflow" ] }, { "id": "airflow_trigger_job", "name": "AirflowTriggerJobComponent", "category": "jobs", "description": "Trigger an Airflow DAG run via the Airflow REST API as a Dagster job.", "version": "1.0.0", "author": "Dagster Community", "path": "jobs/airflow_trigger_job", "tags": [ "job", "airflow", "trigger", "external-orchestrator" ], "dependencies": { "pip": [ "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/airflow_trigger_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/airflow_trigger_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/airflow_trigger_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/airflow_trigger_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/airflow_trigger_job/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "job", "schedule" ], "agent_hints": {}, "capabilities": [ "airflow_dag.trigger" ], "consumes": [ "resource:airflow" ] }, { "id": "airlift_dag_assets", "name": "AirliftDagAssets", "category": "integration", "description": "Mirror an Airflow DAG as Dagster assets via dagster-airlift.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/airlift_dag_assets", "tags": [ "integration", "airflow", "migration", "official" ], "dependencies": { "pip": [ "dagster", "dagster-airlift" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/airlift_dag_assets/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/airlift_dag_assets/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/airlift_dag_assets/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/airlift_dag_assets/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/airlift_dag_assets/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "multi_asset" ], "agent_hints": {} }, { "id": "airtable_ingestion", "name": "Airtable Ingestion", "category": "ingestion", "description": "Component for ingesting Airtable database data using dlt.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/airtable_ingestion", "tags": [ "ingestion", "airtable" ], "dependencies": { "pip": [ "dlt[airtable]>=0.4.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/airtable_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/airtable_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/airtable_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/airtable_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/airtable_ingestion/requirements.txt", "icon": "si:airtable", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 hits vendor's REST API.", "outputs": "DataFrame with columns from Airtable base tables + rows.", "side_effects": "Read-only. Requires Airtable API credentials. Rate-limited per Airtable's tier.", "anti_uses": "For generic REST APIs use rest_api_fetcher. For writing back to Airtable use its dedicated writer (if available).", "requires_resources": [ "airtable_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:airtable" ] }, { "id": "airtable_resource", "name": "Airtable Resource", "category": "resource", "description": "Register an AirtableResource wrapping the pyairtable client for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/airtable_resource", "tags": [ "resource", "airtable", "database", "no-code" ], "dependencies": { "pip": [ "pyairtable" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/airtable_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/airtable_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/airtable_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/airtable_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/airtable_resource/requirements.txt", "icon": "si:airtable", "x-dagster-provides": [ "airtable_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:airtable" ] }, { "id": "alter_row", "name": "AlterRowComponent", "category": "transformation", "description": "Mark each row with a CDC operation (insert / update / delete / upsert) based on conditions \u2014 same semantics as ADF Alter Row.", "version": "1.0.0", "author": "Dagster Community", "path": "transforms/alter_row", "tags": [ "cdc", "alter-row", "upsert", "delete-marker" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/alter_row/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/alter_row/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/alter_row/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/alter_row/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/alter_row/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/detect_changes.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with columns to modify.", "outputs": "Same columns; values modified per config.", "side_effects": "Modifies values IN PLACE per rules \u2014 check config carefully. May coerce types.", "anti_uses": "For type coercion use type_coercer (typed, safer). For adding a computed column use formula." }, "produces": [ "asset" ] }, { "id": "anomaly_detection", "name": "Anomaly Detection", "category": "analytics", "description": "Component for detecting anomalies in data.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/anomaly_detection", "tags": [ "analytics", "anomaly", "detection" ], "dependencies": { "pip": [] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/anomaly_detection/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/anomaly_detection/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/anomaly_detection/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/anomaly_detection/example.yaml", "icon": "BarChart2", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/anomaly_detection/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/stocks_anomaly.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with a numeric column to score.", "outputs": "Same columns + `is_anomaly` (bool) and/or `anomaly_score` columns.", "side_effects": "Adds columns; does not remove rows. Downstream filter for is_anomaly=True to isolate anomalies.", "anti_uses": "Not for outlier CLIPPING (use outlier_clipper). This flags; outlier_clipper trims values.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ] }, { "id": "ansible_asset", "name": "Ansible Asset", "category": "infrastructure", "description": "Run an Ansible playbook as a Dagster asset.", "path": "assets/infrastructure/ansible_asset", "tags": [ "infrastructure", "ansible", "asset" ], "icon": "si:ansible", "type": "dagster_component_templates.AnsibleAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/ansible_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/ansible_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/ansible_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/ansible_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/ansible_asset/requirements.txt", "component_type": "dagster_component_templates.AnsibleAssetComponent", "validation": { "level": "code", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster" ] }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "anthropic_agent", "name": "Anthropic Agent", "category": "ai", "description": "Single-shot LLM agent with Model Context Protocol (MCP) tool support, using the Anthropic SDK directly (no LiteLLM dep). Runs a tool-calling loop until the model returns a final answer or max_iterations.", "path": "assets/ai/anthropic_agent", "tags": [ "ai", "llm", "agent", "mcp", "tool-use", "anthropic", "claude", "agentic" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/anthropic_agent/schema.json", "component_type": "dagster_component_templates.AnthropicAgentComponent", "icon": "si:anthropic", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/anthropic_agent/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/anthropic_agent/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/anthropic_agent/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/anthropic_agent/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/supabase_rag.md", "last_validated": "2026-06-04" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "anthropic", "mcp" ] }, "produces": [ "asset" ], "agent_hints": { "output_type": "pd.DataFrame" }, "consumes": [ "resource:anthropic" ] }, { "id": "anthropic_llm", "name": "Anthropic Claude LLM", "category": "ai", "description": "Component for processing text with Anthropic's Claude models.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/anthropic_llm", "tags": [ "ai", "anthropic", "llm" ], "dependencies": { "pip": [ "anthropic>=0.18.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/anthropic_llm/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/anthropic_llm/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/anthropic_llm/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/anthropic_llm/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/anthropic_llm/requirements.txt", "icon": "si:anthropic", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/anthropic.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame" }, "consumes": [ "resource:anthropic" ] }, { "id": "anthropic_resource", "name": "Anthropic Resource", "category": "resource", "description": "Register a dagster-anthropic AnthropicResource for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/anthropic_resource", "tags": [ "resource", "anthropic", "llm", "ai" ], "dependencies": { "pip": [ "dagster-anthropic" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/anthropic_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/anthropic_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/anthropic_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/anthropic_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/anthropic_resource/requirements.txt", "icon": "si:anthropic", "x-dagster-provides": [ "anthropic_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:anthropic" ] }, { "id": "append_cluster", "name": "AppendCluster", "category": "analytics", "description": "Cluster rows with k-means and append the cluster label as a new column.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/append_cluster", "tags": [ "analytics", "clustering", "kmeans" ], "dependencies": { "pip": [ "pandas", "scikit-learn", "numpy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/append_cluster/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/append_cluster/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/append_cluster/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/append_cluster/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/append_cluster/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with numeric feature columns.", "outputs": "DataFrame + `cluster` column.", "side_effects": "Simpler alias for k_means_clustering. Requires sklearn.", "requires_pip": [ "sklearn" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "append_fields", "name": "Append Fields", "category": "transformation", "description": "Append all columns from a small source DataFrame to every row of a larger DataFrame (broadcast join).", "path": "assets/transforms/append_fields", "tags": [ "transformation", "append", "fields" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/append_fields/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/append_fields/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/append_fields/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/append_fields/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/append_fields/requirements.txt", "icon": "Shuffle", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/transformations.md", "last_validated": "2026-05-14" }, "agent_hints": { "inputs": "DataFrame + a config describing new fields to add.", "outputs": "DataFrame + N new columns per config.", "side_effects": "Adds columns; does not remove existing.", "anti_uses": "For pandas-eval expressions use formula. For type conversion use type_coercer.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "archive_fetcher", "name": "Archive Fetcher", "category": "ingestion", "description": "Download a remote archive (zip / tar.gz / tar.bz2 / tar.xz / gz / bz2), extract it, and emit a {filename: absolute_path} dict for downstream consumption. Pairs with rest_api_fetcher for binary/compressed data sources (MovieLens, IMDb, GTFS, Kaggle, USGS).", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/archive_fetcher", "tags": [ "ingestion", "archive", "zip", "tar", "gzip", "download", "fetcher" ], "dependencies": { "pip": [ "dagster", "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/archive_fetcher/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/archive_fetcher/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/archive_fetcher/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/archive_fetcher/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/archive_fetcher/requirements.txt", "icon": "Archive", "validation": { "level": "live", "evidence": "Downloaded + extracted MovieLens ml-latest-small.zip (978KB, 5 files) end-to-end via dg launch", "last_validated": "2026-05-12" }, "agent_hints": { "inputs": "None (root source) \u2014 downloads and extracts an archive (zip, tar, tar.gz).", "outputs": "DataFrame listing extracted files (or the file content depending on config).", "side_effects": "Writes extracted files to disk at `output_dir`. Not idempotent if archive contents change.", "anti_uses": "For a single file at a URL use file_ingestion. For repeatedly-changing archives you'll want a downstream ingest that re-parses." }, "produces": [ "asset" ] }, { "id": "argo_workflow_sensor", "name": "Argo Workflow Sensor", "category": "sensor", "description": "Polls Argo Server REST API for workflow status; emits AssetMaterialization / AssetObservation + RunRequest on terminal success.", "path": "sensors/argo_workflow_sensor", "tags": [ "sensor", "argo", "workflow", "kubernetes" ], "vendor": "Argo", "dependencies": { "pip": [ "requests>=2.28.0" ] }, "version": "1.0.0", "author": "Dagster Community", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/argo_workflow_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/argo_workflow_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/argo_workflow_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/argo_workflow_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/argo_workflow_sensor/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-28", "evidence": "build_defs + Pydantic instantiation pass; awaiting customer pilot for live" }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:argo_workflow" ] }, { "id": "argo_workflow_trigger", "name": "Argo Workflow Trigger", "category": "infrastructure", "description": "Materializable asset that submits an Argo Workflow via /api/v1/workflows/{namespace}/submit. Pairs with argo_workflow_sensor in observation mode for submit-then-watch.", "path": "assets/infrastructure/argo_workflow_trigger", "tags": [ "infrastructure", "argo", "workflow", "trigger", "kubernetes" ], "vendor": "Argo", "dependencies": { "pip": [ "requests>=2.28.0" ] }, "version": "1.0.0", "author": "Dagster Community", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/argo_workflow_trigger/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/argo_workflow_trigger/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/argo_workflow_trigger/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/argo_workflow_trigger/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/argo_workflow_trigger/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-28", "evidence": "build_defs + Pydantic instantiation pass; awaiting customer pilot for live" }, "produces": [ "asset" ], "agent_hints": {}, "capabilities": [ "argo_workflow.trigger" ], "consumes": [ "resource:argo_workflow" ] }, { "id": "arima_forecast", "name": "ARIMA Forecast", "category": "transformation", "description": "Fit an ARIMA time series model and generate forecasts.", "path": "assets/transforms/arima_forecast", "tags": [ "transformation", "arima", "forecast" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/arima_forecast/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/arima_forecast/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/arima_forecast/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/arima_forecast/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/arima_forecast/requirements.txt", "icon": "Shuffle", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/forecast_comparison.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with a numeric time-series column + date column, sorted by date.", "outputs": "DataFrame with forecast rows: date, forecast, lower_ci, upper_ci.", "side_effects": "Requires statsmodels. Output is FUTURE forecasts, not the input rows. Order-sensitive.", "anti_uses": "For simple pct-change use pct_change. For non-time-series prediction use logistic_regression_model / linear_regression_model.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "statsmodels" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "arm_template_asset", "name": "ArmTemplateAssetComponent", "category": "infrastructure", "description": "Deploy an Azure Resource Manager (ARM) template as a Dagster asset.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/infrastructure/arm_template_asset", "tags": [ "azure", "arm", "iac", "infrastructure" ], "dependencies": { "pip": [ "azure-mgmt-resource", "azure-identity" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/arm_template_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/arm_template_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/arm_template_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/arm_template_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/arm_template_asset/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "arrange", "name": "Arrange", "category": "transformation", "description": "Reorder, move, and rename columns in a DataFrame.", "path": "assets/transforms/arrange", "tags": [ "transformation", "arrange" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/arrange/schema.json", "component_type": "dagster_component_templates.ArrangeComponent", "icon": "Shuffle", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/arrange/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/arrange/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/arrange/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/arrange/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/transformations.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "Any DataFrame.", "outputs": "Same columns; rows sorted per `sort_by` and `ascending`.", "side_effects": "Row order changes only. No data loss.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "array_exploder", "name": "Array Exploder", "category": "transformation", "description": "Expand an array-valued column so each element becomes its own row.", "path": "assets/transforms/array_exploder", "tags": [ "transformation", "documents", "array", "explode", "unnest" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/array_exploder/schema.json", "component_type": "dagster_component_templates.ArrayExploderComponent", "icon": "Rows", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/array_exploder/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/array_exploder/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/array_exploder/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/array_exploder/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/hn_xml.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with a column containing arrays/lists.", "outputs": "DataFrame with row per array element \u2014 row count MULTIPLIES by array length.", "side_effects": "Row count multiplies. Original array column replaced with element column.", "anti_uses": "For flattening nested dicts use dataframe_flatten_nested_columns. For long \u2192 wide use pivot.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "asana_ingestion", "name": "Asana Ingestion", "category": "ingestion", "description": "Component for ingesting Asana project management data using dlt.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/asana_ingestion", "tags": [ "ingestion", "asana" ], "dependencies": { "pip": [ "dlt[asana]>=0.4.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/asana_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/asana_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/asana_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/asana_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/asana_ingestion/requirements.txt", "icon": "si:asana", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 hits vendor's REST API.", "outputs": "DataFrame with columns from Asana projects, tasks, users.", "side_effects": "Read-only. Requires Asana API credentials. Rate-limited per Asana's tier.", "anti_uses": "For generic REST APIs use rest_api_fetcher. For writing back to Asana use its dedicated writer (if available).", "requires_resources": [ "asana_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "asana_resource", "name": "Asana Resource", "category": "resource", "description": "Register an AsanaResource wrapping the Asana Python SDK for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/asana_resource", "tags": [ "resource", "asana", "project-management", "tasks" ], "dependencies": { "pip": [ "asana" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/asana_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/asana_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/asana_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/asana_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/asana_resource/requirements.txt", "icon": "si:asana", "x-dagster-provides": [ "asana_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "asset_job", "name": "AssetJob", "category": "infrastructure", "description": "Define a named Dagster job from a set of asset keys (without scheduling it).", "version": "1.0.0", "author": "Dagster Community", "path": "schedules/asset_job", "tags": [ "infrastructure", "job", "orchestration" ], "dependencies": { "pip": [] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/schedules/asset_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/schedules/asset_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/schedules/asset_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/schedules/asset_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/schedules/asset_job/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/adls_inbox.md", "last_validated": "2026-05-06" }, "produces": [ "job" ], "agent_hints": {} }, { "id": "asset_reference", "name": "Asset Reference", "category": "infrastructure", "description": "Reference an existing asset (dbt, Python, etc.) in a pipeline definition", "version": "1.0.0", "author": "Dagster Community", "path": "core/asset_reference", "tags": [ "core", "infrastructure", "asset-reference" ], "dependencies": { "pip": [] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/core/asset_reference/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/core/asset_reference/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/core/asset_reference/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/core/asset_reference/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/core/asset_reference/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "athena_io_manager", "name": "Athena IO Manager", "category": "io_manager", "description": "Register an Athena IO manager that stores assets as Parquet on S3 and queries them via Amazon Athena", "version": "0.1.0", "author": "Dagster Labs", "path": "io_managers/athena_io_manager", "tags": [ "io_manager", "athena", "aws", "s3", "parquet" ], "dependencies": { "pip": [ "awswrangler>=3.0.0", "boto3>=1.26.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/athena_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/athena_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/athena_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/athena_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/athena_io_manager/requirements.txt", "icon": "si:amazonwebservices", "x-dagster-provides": [ "io_manager" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "AWS", "produces": [ "resource" ], "agent_hints": {} }, { "id": "audio_transcriber", "name": "Audio Transcriber", "category": "ai", "description": "Transcribe audio files from a file path column using OpenAI Whisper local model.", "path": "assets/ai/audio_transcriber", "tags": [ "ai", "audio", "speech-to-text", "whisper", "transcription" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/audio_transcriber/schema.json", "component_type": "dagster_component_templates.AudioTranscriberComponent", "icon": "Mic", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/audio_transcriber/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/audio_transcriber/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/audio_transcriber/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/audio_transcriber/requirements.txt", "validation": { "level": "live", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "openai-whisper" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "audio_transform_asset", "name": "Audio Transform Asset", "category": "transformation", "description": "Run ffmpeg per row to resample / convert / trim audio files.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/audio_transform_asset", "tags": [ "audio-transform-asset", "transforms" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/audio_transform_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/audio_transform_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/audio_transform_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/audio_transform_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/audio_transform_asset/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "audit_columns", "name": "AuditColumnsComponent", "category": "transformation", "description": "Add system-audit columns to every row \u2014 run_id, dagster_run_id, asset_key, materialization_time, optional username/git_sha.", "version": "1.0.0", "author": "Dagster Community", "path": "transforms/audit_columns", "tags": [ "audit", "metadata", "lineage", "warehouse" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/audit_columns/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/audit_columns/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/audit_columns/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/audit_columns/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/audit_columns/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/transformations.md", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "Any DataFrame.", "outputs": "Same columns + audit columns (typically created_at, updated_at, source, etc.).", "side_effects": "Adds columns; does not remove.", "anti_uses": "Not for pure timestamp derivation (use formula). Not for cleansing (use data_cleansing)." }, "produces": [ "asset" ] }, { "id": "audit_logs_to_chronicle", "name": "AuditLogsToChronicleComponent", "category": "sink", "description": "Ship audit-log DataFrame to Google Chronicle (SecOps) via the unstructuredlogentries ingestion API.", "version": "1.0.0", "author": "Dagster Community", "path": "sinks/audit_logs_to_chronicle", "tags": [ "chronicle", "google-secops", "siem", "audit-log", "security" ], "dependencies": { "pip": [ "pandas", "google-auth", "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_chronicle/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_chronicle/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_chronicle/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_chronicle/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_chronicle/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "DataFrame of audit-log events.", "outputs": "None (sink \u2014 forwards events to Google Chronicle).", "side_effects": "Writes to Google Chronicle. Volume-based \u2014 long-running for large audit sets.", "anti_uses": "Not for INGESTING FROM Google Chronicle \u2014 this is one-way forwarding. For reading, use the vendor's log-query source.", "requires_resources": [ "gcp_credentials" ] }, "produces": [ "asset" ] }, { "id": "audit_logs_to_datadog_logs", "name": "AuditLogsToDatadogLogsComponent", "category": "sink", "description": "Ship audit-log DataFrame to Datadog Logs via /api/v2/logs.", "version": "1.0.0", "author": "Dagster Community", "path": "sinks/audit_logs_to_datadog_logs", "tags": [ "datadog", "logs", "siem", "audit-log" ], "dependencies": { "pip": [ "pandas", "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_datadog_logs/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_datadog_logs/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_datadog_logs/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_datadog_logs/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_datadog_logs/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "DataFrame of audit-log events.", "outputs": "None (sink \u2014 forwards events to Datadog Logs).", "side_effects": "Writes to Datadog Logs. Volume-based \u2014 long-running for large audit sets.", "anti_uses": "Not for INGESTING FROM Datadog Logs \u2014 this is one-way forwarding. For reading, use the vendor's log-query source.", "requires_resources": [ "datadog_resource" ] }, "produces": [ "asset" ] }, { "id": "audit_logs_to_elastic_security", "name": "AuditLogsToElasticSecurityComponent", "category": "sink", "description": "Ship audit-log DataFrame to Elastic Security via the bulk indexing API.", "version": "1.0.0", "author": "Dagster Community", "path": "sinks/audit_logs_to_elastic_security", "tags": [ "elastic", "elasticsearch", "kibana", "siem", "audit-log" ], "dependencies": { "pip": [ "pandas", "elasticsearch>=8" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_elastic_security/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_elastic_security/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_elastic_security/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_elastic_security/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_elastic_security/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "DataFrame of audit-log events.", "outputs": "None (sink \u2014 forwards events to Elastic Security).", "side_effects": "Writes to Elastic Security. Volume-based \u2014 long-running for large audit sets.", "anti_uses": "Not for INGESTING FROM Elastic Security \u2014 this is one-way forwarding. For reading, use the vendor's log-query source.", "requires_resources": [ "elasticsearch_resource" ] }, "produces": [ "asset" ] }, { "id": "audit_logs_to_qradar", "name": "AuditLogsToQradarComponent", "category": "sink", "description": "Ship audit-log DataFrame to IBM QRadar via Syslog (TCP) \u2014 events go to a configured Log Source.", "version": "1.0.0", "author": "Dagster Community", "path": "sinks/audit_logs_to_qradar", "tags": [ "qradar", "ibm", "siem", "syslog", "security" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_qradar/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_qradar/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_qradar/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_qradar/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_qradar/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "DataFrame of audit-log events.", "outputs": "None (sink \u2014 forwards events to IBM QRadar).", "side_effects": "Writes to IBM QRadar. Volume-based \u2014 long-running for large audit sets.", "anti_uses": "Not for INGESTING FROM IBM QRadar \u2014 this is one-way forwarding. For reading, use the vendor's log-query source.", "requires_resources": [ "qradar_resource" ] }, "produces": [ "asset" ] }, { "id": "audit_logs_to_sentinel", "name": "AuditLogsToSentinelComponent", "category": "sink", "description": "Ship audit-log DataFrame to Microsoft Sentinel via the Log Analytics Data Collector API.", "version": "1.0.0", "author": "Dagster Community", "path": "sinks/audit_logs_to_sentinel", "tags": [ "sentinel", "azure", "siem", "log-analytics", "security" ], "dependencies": { "pip": [ "pandas", "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_sentinel/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_sentinel/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_sentinel/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_sentinel/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_sentinel/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/dagster_plus_to_sentinel.md", "last_validated": "2026-05-06" }, "vendor": "Microsoft", "agent_hints": { "inputs": "DataFrame of audit-log events.", "outputs": "None (sink \u2014 forwards events to Microsoft Sentinel).", "side_effects": "Writes to Microsoft Sentinel. Volume-based \u2014 long-running for large audit sets.", "anti_uses": "Not for INGESTING FROM Microsoft Sentinel \u2014 this is one-way forwarding. For reading, use the vendor's log-query source.", "requires_resources": [ "azure_credentials" ] }, "produces": [ "asset" ] }, { "id": "audit_logs_to_splunk", "name": "AuditLogsToSplunkComponent", "category": "sink", "description": "Ship audit-log DataFrame to Splunk via the HTTP Event Collector (HEC).", "version": "1.0.0", "author": "Dagster Community", "path": "sinks/audit_logs_to_splunk", "tags": [ "splunk", "siem", "hec", "audit-log", "security" ], "dependencies": { "pip": [ "pandas", "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_splunk/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_splunk/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_splunk/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_splunk/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_splunk/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "DataFrame of audit-log events.", "outputs": "None (sink \u2014 forwards events to Splunk).", "side_effects": "Writes to Splunk. Volume-based \u2014 long-running for large audit sets.", "anti_uses": "Not for INGESTING FROM Splunk \u2014 this is one-way forwarding. For reading, use the vendor's log-query source.", "requires_resources": [ "splunk_resource" ] }, "produces": [ "asset" ] }, { "id": "audit_logs_to_sumo_logic", "name": "AuditLogsToSumoLogicComponent", "category": "sink", "description": "Ship audit-log DataFrame to Sumo Logic via an HTTP Hosted Collector.", "version": "1.0.0", "author": "Dagster Community", "path": "sinks/audit_logs_to_sumo_logic", "tags": [ "sumo-logic", "siem", "http-collector", "audit-log" ], "dependencies": { "pip": [ "pandas", "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_sumo_logic/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_sumo_logic/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_sumo_logic/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_sumo_logic/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/audit_logs_to_sumo_logic/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "DataFrame of audit-log events.", "outputs": "None (sink \u2014 forwards events to Sumo Logic).", "side_effects": "Writes to Sumo Logic. Volume-based \u2014 long-running for large audit sets.", "anti_uses": "Not for INGESTING FROM Sumo Logic \u2014 this is one-way forwarding. For reading, use the vendor's log-query source.", "requires_resources": [ "sumo_logic_resource" ] }, "produces": [ "asset" ] }, { "id": "auth0_logs_ingestion", "name": "Auth0LogsIngestionComponent", "category": "ingestion", "description": "Pull Auth0 tenant logs via the Management API /api/v2/logs endpoint.", "version": "1.0.0", "author": "Dagster Community", "path": "ingestion/auth0_logs_ingestion", "tags": [ "auth0", "siem", "audit-log", "iam", "security" ], "dependencies": { "pip": [ "pandas", "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/auth0_logs_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/auth0_logs_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/auth0_logs_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/auth0_logs_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/auth0_logs_ingestion/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 reads audit log entries via API.", "outputs": "DataFrame of Auth0 audit events (actor, action, resource, timestamp, metadata).", "side_effects": "Read-only. Requires Auth0 admin credentials. Chunked / paginated per vendor's API.", "anti_uses": "For SIEM ingestion of the SAME logs into a SIEM, chain into audit_logs_to_ sinks downstream.", "requires_resources": [ "auth0_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "auto_field", "name": "Auto Field", "category": "transformation", "description": "Automatically optimize DataFrame column dtypes to reduce memory usage.", "path": "assets/transforms/auto_field", "tags": [ "transformation", "auto", "field" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/auto_field/schema.json", "component_type": "dagster_component_templates.AutoFieldComponent", "icon": "Shuffle", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/auto_field/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/auto_field/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/auto_field/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/auto_field/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/transformations.md", "last_validated": "2026-05-14" }, "agent_hints": { "inputs": "Any DataFrame.", "outputs": "Same rows; column dtypes optimized (numeric strings \u2192 numeric, dates \u2192 datetime, etc.).", "side_effects": "Modifies dtypes IN PLACE; column names unchanged.", "anti_uses": "For explicit typed conversion prefer type_coercer. auto_field guesses \u2014 not always right.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "automation_condition_applicator", "name": "Automation Condition Applicator", "category": "infrastructure", "description": "Apply Dagster AutomationConditions broadly via selection rules with fall-through priority. Per-asset settings preserved by default. Supports cron, presets, and derive-from-upstreams modes.", "path": "assets/infrastructure/automation_condition_applicator", "tags": [ "infrastructure", "automation", "automation-condition", "declarative-automation", "bulk-apply" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/automation_condition_applicator/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/automation_condition_applicator/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/automation_condition_applicator/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/automation_condition_applicator/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/automation_condition_applicator/requirements.txt", "icon": "Workflow", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/automation_condition_pipeline.md", "last_validated": "2026-05-14" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [] }, "produces": [ "asset", "asset_check", "job", "resource", "schedule", "sensor" ], "agent_hints": {} }, { "id": "autosys_asset", "name": "AutoSys Asset", "category": "infrastructure", "description": "AutoSys enterprise job scheduler component.", "path": "assets/infrastructure/autosys_asset", "tags": [ "infrastructure", "autosys", "asset" ], "icon": "Server", "type": "dagster_component_templates.AutoSysAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/autosys_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/autosys_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/autosys_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/autosys_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/autosys_asset/requirements.txt", "component_type": "dagster_component_templates.AutoSysAssetComponent", "validation": { "level": "code", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "requests" ] }, "produces": [ "multi_asset" ], "stateful": true, "agent_hints": {} }, { "id": "aws_cdk_asset", "name": "AWS CDK Asset", "category": "infrastructure", "description": "Deploy AWS CDK stacks as a Dagster asset.", "path": "assets/infrastructure/aws_cdk_asset", "tags": [ "infrastructure", "aws", "cdk", "asset" ], "icon": "Server", "type": "dagster_component_templates.AWSCDKAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/aws_cdk_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/aws_cdk_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/aws_cdk_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/aws_cdk_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/aws_cdk_asset/requirements.txt", "component_type": "dagster_component_templates.AWSCDKAssetComponent", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "AWS", "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster" ] }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "aws_cloudtrail_ingestion", "name": "AwsCloudTrailIngestionComponent", "category": "ingestion", "description": "Pull AWS CloudTrail events via the LookupEvents API. Returns a DataFrame per asset materialization.", "version": "1.0.0", "author": "Dagster Community", "path": "ingestion/aws_cloudtrail_ingestion", "tags": [ "aws", "cloudtrail", "siem", "audit-log", "security" ], "dependencies": { "pip": [ "pandas", "boto3" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/aws_cloudtrail_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/aws_cloudtrail_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/aws_cloudtrail_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/aws_cloudtrail_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/aws_cloudtrail_ingestion/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "AWS", "agent_hints": { "inputs": "None (root ingestion) \u2014 reads audit log entries via API.", "outputs": "DataFrame of AWS CloudTrail audit events (actor, action, resource, timestamp, metadata).", "side_effects": "Read-only. Requires AWS CloudTrail admin credentials. Chunked / paginated per vendor's API.", "anti_uses": "For SIEM ingestion of the SAME logs into a SIEM, chain into audit_logs_to_ sinks downstream.", "requires_resources": [ "aws_credentials" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "aws_cloudwatch_logs_insights_query", "name": "AWS CloudWatch Logs Insights Query", "category": "source", "description": "Run a Logs Insights query against CloudWatch Logs and materialize the result as a DataFrame.", "path": "assets/sources/aws_cloudwatch_logs_insights_query", "tags": [ "source", "aws", "cloudwatch", "logs" ], "type": "dagster_component_templates.AwsCloudwatchLogsInsightsQueryComponent", "component_type": "dagster_component_templates.AwsCloudwatchLogsInsightsQueryComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/aws_cloudwatch_logs_insights_query/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/aws_cloudwatch_logs_insights_query/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/aws_cloudwatch_logs_insights_query/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/aws_cloudwatch_logs_insights_query/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/aws_cloudwatch_logs_insights_query/requirements.txt", "icon": "Search", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/aws_cloudwatch.md", "last_validated": "2026-05-11" }, "vendor": "AWS", "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "boto3" ] }, "agent_hints": { "inputs": "None (root source) \u2014 runs a query against AWS CloudWatch Logs (Insights) log store.", "outputs": "DataFrame with log/metric rows \u2014 schema depends on the query.", "side_effects": "Requires aws_credentials. Query language is vendor-specific.", "anti_uses": "For streaming logs use a broker-to-database ingest (kafka_to_database_asset). Not for writing.", "requires_resources": [ "aws_credentials" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "capabilities": [ "cloudwatch.query" ], "consumes": [ "resource:cloudwatch" ] }, { "id": "aws_cloudwatch_metrics_query", "name": "AWS CloudWatch Metrics Query", "category": "source", "description": "Run a CloudWatch GetMetricData query and materialize the result as a DataFrame asset. Counterpart to azure_log_analytics_query but for AWS.", "path": "assets/sources/aws_cloudwatch_metrics_query", "tags": [ "source", "aws", "cloudwatch", "metrics" ], "type": "dagster_component_templates.AwsCloudwatchMetricsQueryComponent", "component_type": "dagster_component_templates.AwsCloudwatchMetricsQueryComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/aws_cloudwatch_metrics_query/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/aws_cloudwatch_metrics_query/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/aws_cloudwatch_metrics_query/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/aws_cloudwatch_metrics_query/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/aws_cloudwatch_metrics_query/requirements.txt", "icon": "LineChart", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/aws_cloudwatch.md", "last_validated": "2026-05-11" }, "vendor": "AWS", "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "boto3" ] }, "agent_hints": { "inputs": "None (root source) \u2014 runs a query against AWS CloudWatch Metrics log store.", "outputs": "DataFrame with log/metric rows \u2014 schema depends on the query.", "side_effects": "Requires aws_credentials. Query language is vendor-specific.", "anti_uses": "For streaming logs use a broker-to-database ingest (kafka_to_database_asset). Not for writing.", "requires_resources": [ "aws_credentials" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "capabilities": [ "cloudwatch.query" ], "consumes": [ "resource:cloudwatch" ] }, { "id": "aws_dms", "name": "Aws Dms", "category": "integration", "description": "Component for importing AWS DMS and Zero ETL entities as Dagster assets.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/aws_dms", "tags": [ "integration", "aws", "dms" ], "dependencies": { "pip": [ "boto3", "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/aws_dms/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/aws_dms/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/aws_dms/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/aws_dms/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/aws_dms/requirements.txt", "icon": "Plug", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "AWS", "produces": [ "asset", "sensor" ], "agent_hints": {} }, { "id": "aws_glue", "name": "Aws Glue", "category": "integration", "description": "Component for importing AWS Glue entities as Dagster assets.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/aws_glue", "tags": [ "integration", "aws", "glue" ], "dependencies": { "pip": [ "boto3", "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/aws_glue/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/aws_glue/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/aws_glue/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/aws_glue/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/aws_glue/requirements.txt", "icon": "si:awsglue", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "AWS", "produces": [ "multi_asset", "sensor" ], "stateful": true, "agent_hints": {} }, { "id": "aws_kinesis", "name": "Aws Kinesis", "category": "integration", "description": "Component for importing AWS Kinesis entities as Dagster assets.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/aws_kinesis", "tags": [ "integration", "aws", "kinesis" ], "dependencies": { "pip": [ "boto3", "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/aws_kinesis/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/aws_kinesis/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/aws_kinesis/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/aws_kinesis/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/aws_kinesis/requirements.txt", "icon": "si:amazonkinesis", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "AWS", "produces": [ "asset", "sensor" ], "agent_hints": {}, "consumes": [ "resource:kinesis" ] }, { "id": "aws_redshift", "name": "Aws Redshift", "category": "integration", "description": "Component for importing AWS Redshift entities as Dagster assets.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/aws_redshift", "tags": [ "integration", "aws", "redshift" ], "dependencies": { "pip": [ "boto3", "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/aws_redshift/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/aws_redshift/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/aws_redshift/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/aws_redshift/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/aws_redshift/requirements.txt", "icon": "si:amazonredshift", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "AWS", "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:redshift" ] }, { "id": "aws_s3_resource", "name": "AWS S3 Resource", "category": "resource", "description": "Register a dagster-aws S3Resource for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/aws_s3_resource", "tags": [ "resource", "aws", "s3" ], "dependencies": { "pip": [ "dagster-aws" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/aws_s3_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/aws_s3_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/aws_s3_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/aws_s3_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/aws_s3_resource/requirements.txt", "icon": "si:amazons3", "x-dagster-provides": [ "s3_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "AWS", "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:s3" ] }, { "id": "aws_sagemaker", "name": "Aws Sagemaker", "category": "integration", "description": "Component for importing AWS SageMaker entities as Dagster assets.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/aws_sagemaker", "tags": [ "integration", "aws", "sagemaker" ], "dependencies": { "pip": [ "boto3", "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/aws_sagemaker/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/aws_sagemaker/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/aws_sagemaker/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/aws_sagemaker/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/aws_sagemaker/requirements.txt", "icon": "si:amazonsagemaker", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "AWS", "produces": [ "asset", "sensor" ], "agent_hints": {} }, { "id": "azure_activity_log_ingestion", "name": "AzureActivityLogIngestionComponent", "category": "ingestion", "description": "Pull Azure Activity Log entries (control-plane audit) via the Monitor REST API.", "version": "1.0.0", "author": "Dagster Community", "path": "ingestion/azure_activity_log_ingestion", "tags": [ "azure", "activity-log", "siem", "audit-log", "security" ], "dependencies": { "pip": [ "pandas", "azure-mgmt-monitor", "azure-identity" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/azure_activity_log_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/azure_activity_log_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/azure_activity_log_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/azure_activity_log_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/azure_activity_log_ingestion/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Microsoft", "agent_hints": { "inputs": "None (root ingestion) \u2014 reads audit log entries via API.", "outputs": "DataFrame of Azure Activity Log audit events (actor, action, resource, timestamp, metadata).", "side_effects": "Read-only. Requires Azure Activity Log admin credentials. Chunked / paginated per vendor's API.", "anti_uses": "For SIEM ingestion of the SAME logs into a SIEM, chain into audit_logs_to_ sinks downstream.", "requires_resources": [ "azure_credentials" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "azure_blob_parquet_io_manager", "name": "AzureBlobParquetIOManager", "category": "io_manager", "description": "Store DataFrames as Parquet on Azure Blob Storage.", "version": "1.0.0", "author": "Dagster Community", "path": "io_managers/azure_blob_parquet_io_manager", "tags": [ "io_manager", "azure", "parquet", "lakehouse" ], "dependencies": { "pip": [ "pandas", "pyarrow", "azure-storage-blob", "azure-identity" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/azure_blob_parquet_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/azure_blob_parquet_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/azure_blob_parquet_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/azure_blob_parquet_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/azure_blob_parquet_io_manager/requirements.txt", "validation": { "level": "code", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_synapse_serverless.md", "last_validated": "2026-05-11" }, "vendor": "Microsoft", "produces": [ "resource" ], "agent_hints": {} }, { "id": "azure_data_factory", "name": "Azure Data Factory", "category": "integration", "description": "Shared Azure Data Factory connection config.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/azure_data_factory", "tags": [ "integration", "azure", "data", "factory" ], "dependencies": { "pip": [ "azure-identity", "azure-mgmt-datafactory", "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/azure_data_factory/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/azure_data_factory/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/azure_data_factory/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/azure_data_factory/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/azure_data_factory/requirements.txt", "icon": "si:microsoftazure", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_data_factory.md", "last_validated": "2026-05-06" }, "vendor": "Microsoft", "produces": [ "multi_asset", "sensor" ], "stateful": true, "agent_hints": {} }, { "id": "azure_log_analytics_query", "name": "Azure Log Analytics Query", "category": "source", "description": "Materialize a DataFrame from a KQL query against an Azure Log Analytics workspace. Read-side counterpart to audit_logs_to_sentinel.", "path": "assets/sources/azure_log_analytics_query", "tags": [ "source", "azure", "log_analytics", "kql", "monitoring", "sentinel" ], "type": "dagster_component_templates.AzureLogAnalyticsQueryComponent", "component_type": "dagster_component_templates.AzureLogAnalyticsQueryComponent", "icon": "Search", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/azure_log_analytics_query/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/azure_log_analytics_query/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/azure_log_analytics_query/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/azure_log_analytics_query/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/azure_log_analytics_query/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_data_explorer.md", "last_validated": "2026-05-11" }, "vendor": "Microsoft", "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "azure-identity", "azure-monitor-query", "isodate" ] }, "agent_hints": { "inputs": "None (root source) \u2014 runs a query against Azure Log Analytics log store.", "outputs": "DataFrame with log/metric rows \u2014 schema depends on the query.", "side_effects": "Requires azure_credentials. Query language is vendor-specific.", "anti_uses": "For streaming logs use a broker-to-database ingest (kafka_to_database_asset). Not for writing.", "requires_resources": [ "azure_credentials" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "capabilities": [ "azure_log_analytics.query" ], "consumes": [ "resource:azure_log_analytics" ] }, { "id": "azure_openai_resource", "name": "Azure OpenAI Resource", "category": "resource", "description": "Azure OpenAI Service client (distinct from openai_resource). Supports Azure deployment IDs, regional endpoints, api_version, and Microsoft Entra OAuth or API key auth.", "path": "resources/azure_openai_resource", "tags": [ "resource", "azure", "openai", "ai", "llm" ], "type": "dagster_component_templates.AzureOpenAIResourceComponent", "component_type": "dagster_component_templates.AzureOpenAIResourceComponent", "icon": "Sparkles", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/azure_openai_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/azure_openai_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/azure_openai_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/azure_openai_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/azure_openai_resource/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Microsoft", "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "openai", "azure-identity" ] }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:openai" ] }, { "id": "azure_search_indexer", "name": "DataFrame \u2192 Azure AI Search", "category": "sink", "description": "Push DataFrame rows as documents to an Azure AI Search index. Backbone of RAG, semantic search, enterprise knowledge bases.", "path": "assets/sinks/azure_search_indexer", "tags": [ "sink", "azure", "ai_search", "search", "rag", "vector" ], "type": "dagster_component_templates.AzureSearchIndexerComponent", "component_type": "dagster_component_templates.AzureSearchIndexerComponent", "icon": "Search", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/azure_search_indexer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/azure_search_indexer/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/azure_search_indexer/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/azure_search_indexer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/azure_search_indexer/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_search.md", "last_validated": "2026-05-06" }, "vendor": "Microsoft", "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes to Azure AI Search index).", "side_effects": "Writes to Azure AI Search index. Requires azure_credentials. Mode / write-disposition per config.", "anti_uses": "For local files use dataframe_to_parquet/csv/json.", "requires_resources": [ "azure_credentials" ], "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "azure-search-documents", "azure-identity" ] }, "produces": [ "asset" ], "consumes": [ "resource:azure_search" ] }, { "id": "azure_search_query", "name": "Azure AI Search Query", "category": "source", "description": "Query an Azure AI Search index and materialize results as a DataFrame. Supports keyword search, OData filters, semantic ranker, and vector search.", "path": "assets/sources/azure_search_query", "tags": [ "source", "azure", "ai_search", "search", "rag" ], "type": "dagster_component_templates.AzureSearchQueryComponent", "component_type": "dagster_component_templates.AzureSearchQueryComponent", "icon": "Search", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/azure_search_query/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/azure_search_query/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/azure_search_query/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/azure_search_query/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/azure_search_query/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_search.md", "last_validated": "2026-05-06" }, "vendor": "Microsoft", "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "azure-search-documents", "azure-identity" ] }, "produces": [ "asset" ], "agent_hints": { "output_type": "pd.DataFrame" }, "capabilities": [ "azure_ai_search.query" ], "consumes": [ "resource:azure_search" ] }, { "id": "azure_stream_analytics", "name": "Azure Stream Analytics", "category": "integration", "description": "Component for importing Azure Stream Analytics entities as Dagster assets.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/azure_stream_analytics", "tags": [ "integration", "azure", "stream", "analytics" ], "dependencies": { "pip": [ "azure-identity", "azure-mgmt-streamanalytics", "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/azure_stream_analytics/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/azure_stream_analytics/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/azure_stream_analytics/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/azure_stream_analytics/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/azure_stream_analytics/requirements.txt", "icon": "si:microsoftazure", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Microsoft", "produces": [ "asset", "sensor" ], "agent_hints": {} }, { "id": "azure_synapse", "name": "Azure Synapse", "category": "integration", "description": "Component for importing Azure Synapse Analytics entities as Dagster assets.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/azure_synapse", "tags": [ "integration", "azure", "synapse" ], "dependencies": { "pip": [ "azure-identity", "azure-mgmt-synapse", "azure-synapse-artifacts", "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/azure_synapse/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/azure_synapse/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/azure_synapse/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/azure_synapse/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/azure_synapse/requirements.txt", "icon": "si:microsoftazure", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_synapse.md", "last_validated": "2026-05-06" }, "vendor": "Microsoft", "produces": [ "asset", "sensor" ], "agent_hints": {} }, { "id": "azure_table_reader", "name": "Azure Tables Reader", "category": "source", "description": "Read entities from an Azure Table as a DataFrame. Supports OData filters for partition-scoped, RowKey-scoped, or property filtering.", "path": "assets/sources/azure_table_reader", "tags": [ "source", "azure", "table_storage", "nosql" ], "type": "dagster_component_templates.AzureTableReaderComponent", "component_type": "dagster_component_templates.AzureTableReaderComponent", "icon": "Table", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/azure_table_reader/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/azure_table_reader/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/azure_table_reader/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/azure_table_reader/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/azure_table_reader/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_tables.md", "last_validated": "2026-05-06" }, "vendor": "Microsoft", "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "azure-data-tables", "azure-identity" ] }, "agent_hints": { "inputs": "None (root source) \u2014 reads documents/records from Azure Table Storage.", "outputs": "DataFrame with columns from Azure Table Storage docs (nested fields may need dataframe_flatten_nested_columns downstream).", "side_effects": "Read-only. Requires azure_credentials.", "anti_uses": "For writing TO Azure Table Storage use its writer. For SQL DBs use dataframe_from_sql.", "requires_resources": [ "azure_credentials" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "bank_statement_extractor", "name": "Bank Statement Extractor", "category": "ai", "description": "Extract account info and transactions from bank statements using an LLM.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/bank_statement_extractor", "tags": [ "ai", "extraction", "banking", "finance" ], "dependencies": { "pip": [ "dagster", "pandas>=1.5.0", "litellm>=1.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/bank_statement_extractor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/bank_statement_extractor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/bank_statement_extractor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/bank_statement_extractor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/bank_statement_extractor/requirements.txt", "icon": "Landmark", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/document_extractors.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "bicep_asset", "name": "BicepAssetComponent", "category": "infrastructure", "description": "Deploy a Bicep template as a Dagster asset (compiles via `az bicep build` then deploys via ARM).", "version": "1.0.0", "author": "Dagster Community", "path": "assets/infrastructure/bicep_asset", "tags": [ "azure", "bicep", "iac", "infrastructure" ], "dependencies": { "pip": [ "azure-mgmt-resource", "azure-identity" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/bicep_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/bicep_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/bicep_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/bicep_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/bicep_asset/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/bicep_self_provision.md", "last_validated": "2026-05-06" }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "bigquery_create_table_from_query_asset", "name": "BigQueryCreateTableFromQueryAssetComponent", "category": "transformation", "description": "CTAS as a Dagster asset \u2014 CREATE OR REPLACE TABLE / VIEW / MATERIALIZED VIEW from a SELECT statement. The transform layer of any BQ-native ELT pipeline. Same shape as a dbt model but run directly without dbt.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/bigquery_create_table_from_query_asset", "tags": [ "transformation", "google", "bigquery", "ctas", "etl", "warehouse", "elt" ], "dependencies": { "pip": [ "dagster>=1.8.0", "pandas>=1.5.0", "google-cloud-bigquery>=3.0.0", "google-auth>=2.0.0", "db-dtypes>=1.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/bigquery_create_table_from_query_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/bigquery_create_table_from_query_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/bigquery_create_table_from_query_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/bigquery_create_table_from_query_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/bigquery_create_table_from_query_asset/requirements.txt", "component_type": "dagster_component_templates.BigQueryCreateTableFromQueryAssetComponent", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/bigquery_ml_pipeline.md", "last_validated": "2026-05-08" }, "vendor": "Google", "produces": [ "asset" ], "agent_hints": {}, "capabilities": [ "bigquery_table.create", "bigquery.query" ], "consumes": [ "resource:bigquery" ] }, { "id": "bigquery_dry_run_check", "name": "Bigquery Dry Run Check", "category": "check", "description": "Asset check that dry-runs a BigQuery query and fails on excessive bytes scanned.", "version": "1.0.0", "author": "Dagster Community", "path": "asset_checks/bigquery_dry_run_check", "tags": [ "bigquery-dry-run-check", "asset_checks" ], "dependencies": { "pip": [ "google-cloud-bigquery", "google-auth" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/bigquery_dry_run_check/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/bigquery_dry_run_check/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/bigquery_dry_run_check/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/bigquery_dry_run_check/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/bigquery_dry_run_check/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "vendor": "Google", "produces": [ "asset_check" ], "agent_hints": {}, "consumes": [ "resource:bigquery" ] }, { "id": "bigquery_export_to_gcs_asset", "name": "BigQueryExportToGcsAssetComponent", "category": "sink", "description": "Export a BigQuery table or query result to GCS as parquet / CSV / JSONL / AVRO via native BQ EXTRACT / EXPORT DATA. Data never round-trips through the Dagster executor \u2014 BQ pushes directly to GCS, so it's fast at any scale. Two source modes: source_table_id (uses EXTRACT, free) or source_query (uses EXPORT DATA SQL).", "version": "1.0.0", "author": "Dagster Community", "path": "assets/sinks/bigquery_export_to_gcs_asset", "tags": [ "sink", "google", "bigquery", "gcs", "export", "warehouse-to-lake" ], "dependencies": { "pip": [ "dagster>=1.8.0", "pandas>=1.5.0", "google-cloud-bigquery>=3.0.0", "google-cloud-storage>=2.0.0", "google-auth>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/bigquery_export_to_gcs_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/bigquery_export_to_gcs_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/bigquery_export_to_gcs_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/bigquery_export_to_gcs_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/bigquery_export_to_gcs_asset/requirements.txt", "component_type": "dagster_component_templates.BigQueryExportToGcsAssetComponent", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/bigquery_bulk_bridge.md", "last_validated": "2026-05-08" }, "vendor": "Google", "agent_hints": { "inputs": "None (root or downstream of a BQ table).", "outputs": "None (sink \u2014 exports a BQ table to GCS as parquet/CSV/JSON/avro).", "side_effects": "Runs BQ EXPORT DATA job. Requires gcp_credentials + bigquery_resource + destination bucket.", "anti_uses": "For loading GCS \u2192 BQ use bigquery_load_from_gcs_asset. For direct DataFrame \u2192 BQ use dataframe_to_bigquery.", "requires_resources": [ "gcp_credentials", "bigquery_resource" ] }, "produces": [ "asset" ], "consumes": [ "resource:bigquery", "resource:gcs" ] }, { "id": "bigquery_io_manager", "name": "BigQuery IO Manager", "category": "io_manager", "description": "Register a BigQueryPandasIOManager so assets are automatically stored in and loaded from BigQuery", "version": "0.1.0", "author": "Dagster Labs", "path": "io_managers/bigquery_io_manager", "tags": [ "io_manager", "bigquery", "gcp", "google", "warehouse" ], "dependencies": { "pip": [ "dagster-gcp-pandas>=0.22.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/bigquery_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/bigquery_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/bigquery_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/bigquery_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/bigquery_io_manager/requirements.txt", "icon": "si:googlebigquery", "x-dagster-provides": [ "io_manager" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Google", "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:bigquery" ] }, { "id": "bigquery_load_from_gcs_asset", "name": "BigQueryLoadFromGcsAssetComponent", "category": "ingestion", "description": "Load GCS objects into a BigQuery table via BQ's native load-job API (data never round-trips through the executor). The lake \u2192 warehouse step. Supports parquet, CSV, JSONL, AVRO, ORC, with optional explicit schema, partitioning, and clustering on the destination.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/bigquery_load_from_gcs_asset", "tags": [ "ingestion", "google", "bigquery", "gcs", "load", "lake-to-warehouse" ], "dependencies": { "pip": [ "dagster>=1.8.0", "pandas>=1.5.0", "google-cloud-bigquery>=3.0.0", "google-cloud-storage>=2.0.0", "google-auth>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/bigquery_load_from_gcs_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/bigquery_load_from_gcs_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/bigquery_load_from_gcs_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/bigquery_load_from_gcs_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/bigquery_load_from_gcs_asset/requirements.txt", "component_type": "dagster_component_templates.BigQueryLoadFromGcsAssetComponent", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/bigquery_bulk_bridge.md", "last_validated": "2026-05-08" }, "vendor": "Google", "agent_hints": { "inputs": "None (root ingestion) \u2014 loads GCS files (parquet/CSV/JSON/avro) into a BigQuery table.", "outputs": "None (sink-like \u2014 writes to BigQuery).", "side_effects": "Requires gcp_credentials + BQ dataset + GCS objects. write_disposition controls behavior.", "anti_uses": "For direct DataFrame \u2192 BQ use dataframe_to_bigquery. For querying BQ use bigquery_query_asset.", "requires_resources": [ "gcp_credentials", "bigquery_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:bigquery", "resource:gcs" ] }, { "id": "bigquery_ml_predict_asset", "name": "BigQueryMLPredictAssetComponent", "category": "ai", "description": "Run ML.PREDICT / ML.FORECAST / ML.EXPLAIN_PREDICT / ML.DETECT_ANOMALIES against a trained BQML model. Returns a DataFrame of predictions with input columns preserved by default.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/bigquery_ml_predict_asset", "tags": [ "ai", "ml", "google", "bigquery", "bqml", "prediction", "forecasting", "inference" ], "dependencies": { "pip": [ "dagster>=1.8.0", "pandas>=1.5.0", "google-cloud-bigquery>=3.0.0", "google-auth>=2.0.0", "db-dtypes>=1.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/bigquery_ml_predict_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/bigquery_ml_predict_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/bigquery_ml_predict_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/bigquery_ml_predict_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/bigquery_ml_predict_asset/requirements.txt", "component_type": "dagster_component_templates.BigQueryMLPredictAssetComponent", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/bigquery_ml_pipeline.md", "last_validated": "2026-05-08" }, "vendor": "Google", "produces": [ "asset" ], "agent_hints": { "output_type": "pd.DataFrame" }, "consumes": [ "resource:bigquery" ] }, { "id": "bigquery_ml_train_asset", "name": "BigQueryMLTrainAssetComponent", "category": "ai", "description": "Train a BigQuery ML model from a SELECT statement \u2014 ML in pure SQL, no Python ML stack. Supports LINEAR_REG, LOGISTIC_REG, KMEANS, ARIMA_PLUS, DNN_*, BOOSTED_TREE_*, AUTOML_*, MATRIX_FACTORIZATION, PCA, TENSORFLOW.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/bigquery_ml_train_asset", "tags": [ "ai", "ml", "google", "bigquery", "bqml", "training", "forecasting", "classification", "regression" ], "dependencies": { "pip": [ "dagster>=1.8.0", "pandas>=1.5.0", "google-cloud-bigquery>=3.0.0", "google-auth>=2.0.0", "db-dtypes>=1.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/bigquery_ml_train_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/bigquery_ml_train_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/bigquery_ml_train_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/bigquery_ml_train_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/bigquery_ml_train_asset/requirements.txt", "component_type": "dagster_component_templates.BigQueryMLTrainAssetComponent", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/bigquery_ml_pipeline.md", "last_validated": "2026-05-08" }, "vendor": "Google", "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:bigquery" ] }, { "id": "bigquery_query_asset", "name": "BigQueryQueryAssetComponent", "category": "source", "description": "Run a SQL query against Google BigQuery and return a pandas DataFrame. Drop-in peer of duckdb_query_reader (DuckDB) and database_query (generic SQL). Supports {placeholder} substitution from query_params, dry-run cost preview, partition_key auto-injection. For heavier 'import every BQ entity as an asset' use google_bigquery.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/source/bigquery_query_asset", "tags": [ "source", "google", "bigquery", "sql", "warehouse", "query" ], "dependencies": { "pip": [ "dagster>=1.8.0", "pandas>=1.5.0", "google-cloud-bigquery>=3.0.0", "google-auth>=2.0.0", "db-dtypes>=1.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/bigquery_query_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/bigquery_query_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/bigquery_query_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/bigquery_query_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/bigquery_query_asset/requirements.txt", "component_type": "dagster_component_templates.BigQueryQueryAssetComponent", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/bigquery_query.md", "last_validated": "2026-05-08" }, "vendor": "Google", "agent_hints": { "inputs": "None (root source) \u2014 runs a BigQuery SQL query.", "outputs": "DataFrame with columns from the query SELECT list.", "side_effects": "None on local data. Requires bigquery_resource / GCP credentials configured.", "anti_uses": "For loading Parquet/JSON from GCS into BigQuery use bigquery_load_from_gcs_asset. For writing a DataFrame TO BigQuery use dataframe_to_bigquery.", "requires_resources": [ "bigquery_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:bigquery" ] }, { "id": "bigquery_resource", "name": "BigQuery Resource", "category": "resource", "description": "Register a dagster-gcp BigQueryResource for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/bigquery_resource", "tags": [ "resource", "gcp", "bigquery" ], "dependencies": { "pip": [ "dagster-gcp" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/bigquery_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/bigquery_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/bigquery_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/bigquery_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/bigquery_resource/requirements.txt", "icon": "si:googlebigquery", "x-dagster-provides": [ "bigquery_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Google", "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:bigquery" ] }, { "id": "bigquery_table_freshness_check", "name": "Bigquery Table Freshness Check", "category": "check", "description": "Asset check that fails if a BigQuery table's last_modified_time is too old.", "version": "1.0.0", "author": "Dagster Community", "path": "asset_checks/bigquery_table_freshness_check", "tags": [ "bigquery-table-freshness-check", "asset_checks" ], "dependencies": { "pip": [ "google-cloud-bigquery", "google-auth" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/bigquery_table_freshness_check/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/bigquery_table_freshness_check/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/bigquery_table_freshness_check/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/bigquery_table_freshness_check/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/bigquery_table_freshness_check/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "vendor": "Google", "produces": [ "asset_check" ], "agent_hints": {}, "consumes": [ "resource:bigquery" ] }, { "id": "bigquery_table_observation_sensor", "name": "BigQuery Table Observation Sensor", "category": "observation", "description": "Emit health observations for an external BigQuery table.", "version": "1.0.0", "author": "Dagster Community", "path": "observations/bigquery_table_observation_sensor", "tags": [ "observation", "bigquery", "table", "sensor" ], "dependencies": { "pip": [ "google-cloud-bigquery>=3.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/bigquery_table_observation_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/bigquery_table_observation_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/bigquery_table_observation_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/bigquery_table_observation_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/bigquery_table_observation_sensor/requirements.txt", "icon": "si:googlebigquery", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Google", "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:bigquery" ] }, { "id": "bigquery_vector_search_asset", "name": "Bigquery Vector Search Asset", "category": "source", "description": "Run BigQuery VECTOR_SEARCH against an indexed embedding column.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/source/bigquery_vector_search_asset", "tags": [ "bigquery-vector-search-asset", "source" ], "dependencies": { "pip": [ "google-cloud-bigquery", "google-auth", "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/bigquery_vector_search_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/bigquery_vector_search_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/bigquery_vector_search_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/bigquery_vector_search_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/bigquery_vector_search_asset/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "vendor": "Google", "agent_hints": { "inputs": "None (root source) \u2014 BigQuery ML.VECTOR_SEARCH against an embedding column.", "outputs": "DataFrame with nearest-neighbor matches.", "requires_resources": [ "gcp_credentials", "bigquery_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:bigquery" ] }, { "id": "bigtable_reader_asset", "name": "Bigtable Reader Asset", "category": "source", "description": "Read rows from a Bigtable table into a DataFrame.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/source/bigtable_reader_asset", "tags": [ "bigtable-reader-asset", "source" ], "dependencies": { "pip": [ "google-cloud-bigtable", "google-auth", "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/bigtable_reader_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/bigtable_reader_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/bigtable_reader_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/bigtable_reader_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/bigtable_reader_asset/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root source) \u2014 reads documents/records from Google Bigtable.", "outputs": "DataFrame with columns from Google Bigtable docs (nested fields may need dataframe_flatten_nested_columns downstream).", "side_effects": "Read-only. Requires gcp_credentials.", "anti_uses": "For writing TO Google Bigtable use its writer. For SQL DBs use dataframe_from_sql.", "requires_resources": [ "gcp_credentials" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:bigtable" ] }, { "id": "bigtable_writer_asset", "name": "Bigtable Writer Asset", "category": "sink", "description": "Write rows of an upstream DataFrame into a Bigtable table.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/sinks/bigtable_writer_asset", "tags": [ "bigtable-writer-asset", "sinks" ], "dependencies": { "pip": [ "google-cloud-bigtable", "google-auth", "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/bigtable_writer_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/bigtable_writer_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/bigtable_writer_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/bigtable_writer_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/bigtable_writer_asset/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes to Google Bigtable).", "side_effects": "Writes to Google Bigtable. Requires gcp_credentials. Mode / write-disposition per config.", "anti_uses": "For local files use dataframe_to_parquet/csv/json.", "requires_resources": [ "gcp_credentials" ], "input_type": "pd.DataFrame", "output_type": null }, "produces": [ "asset" ], "consumes": [ "resource:bigtable" ] }, { "id": "blob_convert", "name": "Blob Convert", "category": "transformation", "description": "Convert a bytes/text column between common encodings: base64 (encode/decode), hex (encode/decode), text/bytes (utf-8). Drop-in for Alteryx Blob Convert tool.", "path": "assets/transforms/blob_convert", "tags": [ "transformation", "alteryx" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/blob_convert/schema.json", "component_type": "dagster_component_templates.BlobConvertComponent", "icon": "Binary", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/blob_convert/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/blob_convert/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/blob_convert/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/blob_convert/requirements.txt", "validation": { "level": "code", "last_validated": "2026-06-06" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "bounding_box_filter", "name": "Bounding Box Filter", "category": "analytics", "description": "Filter geographic points to those inside (or outside) a bounding box.", "path": "assets/analytics/bounding_box_filter", "tags": [ "analytics", "bounding", "box", "filter" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/bounding_box_filter/schema.json", "component_type": "dagster_component_templates.BoundingBoxFilterComponent", "icon": "BarChart2", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/bounding_box_filter/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/bounding_box_filter/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/bounding_box_filter/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/bounding_box_filter/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/west_coast_cities.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with lat/lon columns.", "outputs": "DataFrame with rows within a bounding box only.", "side_effects": "Reduces row count.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "buffer", "name": "Buffer", "category": "analytics", "description": "Buffer (expand) point or polygon geometries by a fixed radius.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/buffer", "tags": [ "analytics", "spatial", "geopandas", "buffer" ], "dependencies": { "pip": [ "pandas", "geopandas", "shapely" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/buffer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/buffer/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/buffer/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/buffer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/buffer/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/store_coverage.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with point / line geometry column.", "outputs": "DataFrame with buffered polygon per row.", "side_effects": "Requires shapely.", "requires_pip": [ "shapely" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "cache_invalidation_job", "name": "CacheInvalidationJobComponent", "category": "jobs", "description": "Flush keys from a Redis (or compatible) cache as a job \u2014 pattern-based or full FLUSHDB.", "version": "1.0.0", "author": "Dagster Community", "path": "jobs/cache_invalidation_job", "tags": [ "job", "redis", "cache", "invalidation" ], "dependencies": { "pip": [ "redis" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/cache_invalidation_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/cache_invalidation_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/cache_invalidation_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/cache_invalidation_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/cache_invalidation_job/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/redis.md", "last_validated": "2026-05-14" }, "produces": [ "job", "schedule" ], "agent_hints": {} }, { "id": "campaign_performance", "name": "Campaign Performance", "category": "analytics", "description": "Component for analyzing marketing campaign performance.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/campaign_performance", "tags": [ "analytics", "campaign", "performance" ], "dependencies": { "pip": [] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/campaign_performance/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/campaign_performance/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/campaign_performance/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/campaign_performance/example.yaml", "icon": "BarChart2", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/campaign_performance/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "cassandra_reader", "name": "Cassandra Reader", "category": "source", "description": "Component for executing CQL queries against an Apache Cassandra keyspace.", "path": "assets/sources/cassandra_reader", "tags": [ "source", "cassandra", "reader" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/cassandra_reader/schema.json", "component_type": "dagster_component_templates.CassandraReaderComponent", "icon": "si:apachecassandra", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/cassandra_reader/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/cassandra_reader/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/cassandra_reader/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/cassandra_reader/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/cassandra.md", "last_validated": "2026-05-14" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "cassandra-driver" ] }, "agent_hints": { "inputs": "None (root source) \u2014 reads documents/records from Cassandra.", "outputs": "DataFrame with columns from Cassandra docs (nested fields may need dataframe_flatten_nested_columns downstream).", "side_effects": "Read-only. Requires cassandra_resource.", "anti_uses": "For writing TO Cassandra use its writer. For SQL DBs use dataframe_from_sql.", "requires_resources": [ "cassandra_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ], "consumes": [ "resource:cassandra" ] }, { "id": "cassandra_resource", "name": "Apache Cassandra Resource", "category": "resource", "description": "Register an Apache Cassandra resource for high-throughput distributed database access", "version": "1.0.0", "author": "Dagster Community", "path": "resources/cassandra_resource", "tags": [ "resource", "cassandra", "database", "nosql" ], "dependencies": { "pip": [ "cassandra-driver" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/cassandra_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/cassandra_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/cassandra_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/cassandra_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/cassandra_resource/requirements.txt", "icon": "si:apachecassandra", "x-dagster-provides": [ "cassandra_resource" ], "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/cassandra.md", "last_validated": "2026-05-14" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:cassandra" ] }, { "id": "cassandra_writer", "name": "Cassandra Writer", "category": "sink", "description": "Write a DataFrame to an Apache Cassandra table using prepared INSERT CQL statements in batches", "path": "assets/sinks/cassandra_writer", "tags": [ "sink", "cassandra", "nosql", "wide-column" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/cassandra_writer/schema.json", "component_type": "dagster_component_templates.cassandra_writer", "icon": "si:apachecassandra", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/cassandra_writer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/cassandra_writer/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/cassandra_writer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/cassandra_writer/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/cassandra.md", "last_validated": "2026-05-14" }, "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes to Cassandra).", "side_effects": "Writes to Cassandra. Requires cassandra_resource. Mode / write-disposition per config.", "anti_uses": "For local files use dataframe_to_parquet/csv/json.", "requires_resources": [ "cassandra_resource" ], "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "cassandra-driver" ] }, "produces": [ "asset" ], "consumes": [ "resource:cassandra" ] }, { "id": "catalog_agent", "name": "Catalog Agent", "category": "ai", "description": "Meta-agent that reads the LIVE component manifest, presents a filtered slice to a planner LLM, and executes REAL picked components via reflection + in-process materialize. Per-step iteration \u2014 planner sees actual output columns/preview after each step so it picks the next component with real schema knowledge. Works on customer data with schemas unknown at pipeline-write time.", "path": "assets/ai/catalog_agent", "tags": [ "ai", "agent", "agentic", "iterative", "catalog", "meta-agent", "schema-discovery", "reflection", "openai" ], "icon": "Sparkles", "type": "dagster_community_components.CatalogAgentComponent", "component_type": "dagster_community_components.CatalogAgentComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/catalog_agent/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/catalog_agent/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/catalog_agent/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/catalog_agent/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/catalog_agent/requirements.txt", "dependencies": { "pip": [ "pandas", "openai>=1.0.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/catalog_agent.md", "last_validated": "2026-07-07" }, "version": "1.0.0", "author": "Dagster Community", "produces": [ "asset" ], "agent_hints": { "output_type": "pd.DataFrame" } }, { "id": "census_sync_asset", "name": "CensusSyncAsset", "category": "integration", "description": "Run a Census reverse-ETL sync on materialization via dagster-census.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/census_sync_asset", "tags": [ "integration", "census", "reverse-etl", "official" ], "dependencies": { "pip": [ "dagster", "dagster-census" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/census_sync_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/census_sync_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/census_sync_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/census_sync_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/census_sync_asset/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "asset", "resource" ], "agent_hints": {}, "capabilities": [ "census_sync.trigger" ], "consumes": [ "resource:census" ] }, { "id": "chroma_resource", "name": "Chroma Resource", "category": "resource", "description": "Register a dagster-chroma ChromaResource for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/chroma_resource", "tags": [ "resource", "chroma", "vector-db", "ai" ], "dependencies": { "pip": [ "dagster-chroma" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/chroma_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/chroma_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/chroma_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/chroma_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/chroma_resource/requirements.txt", "icon": "si:chromatic", "x-dagster-provides": [ "chroma_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "chromadb_asset", "name": "ChromaDB Asset", "category": "analytics", "description": "Read documents from an upstream Dagster asset (DataFrame), generate embeddings via OpenAI,", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/chromadb_asset", "tags": [ "analytics", "chromadb", "asset" ], "dependencies": { "pip": [ "chromadb", "openai", "sqlalchemy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/chromadb_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/chromadb_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/chromadb_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/chromadb_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/chromadb_asset/requirements.txt", "icon": "BarChart2", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "DataFrame with document text + optional embeddings.", "outputs": "Reads or writes to ChromaDB.", "side_effects": "Requires chromadb.", "requires_pip": [ "chromadb" ] }, "produces": [ "asset" ], "consumes": [ "resource:chromadb" ] }, { "id": "chromadb_reader", "name": "ChromaDB Reader", "category": "source", "description": "Component for querying a ChromaDB collection.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/sources/chromadb_reader", "tags": [ "source", "chromadb", "reader" ], "dependencies": { "pip": [ "pandas>=1.5.0", "chromadb>=0.4.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/chromadb_reader/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/chromadb_reader/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/chromadb_reader/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/chromadb_reader/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/chromadb_reader/requirements.txt", "icon": "Database", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root source) \u2014 queries ChromaDB vector index by embedding or metadata filter.", "outputs": "DataFrame with matched rows: (id, score, embedding, metadata columns).", "side_effects": "Requires chromadb_resource.", "anti_uses": "For writing TO ChromaDB use its asset writer. For local nearest-neighbor over pandas use sklearn NearestNeighbors.", "requires_pip": [ "chromadb" ], "requires_resources": [ "chromadb_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ], "consumes": [ "resource:chromadb" ] }, { "id": "churn_prediction", "name": "Churn Prediction", "category": "analytics", "description": "Component for predicting customer churn risk using heuristic scoring.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/churn_prediction", "tags": [ "analytics", "churn", "prediction" ], "dependencies": { "pip": [ "pandas>=1.5.0", "numpy>=1.24.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/churn_prediction/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/churn_prediction/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/churn_prediction/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/churn_prediction/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/churn_prediction/requirements.txt", "icon": "BarChart2", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/churn.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with features + churn label column.", "outputs": "DataFrame with predictions and probabilities per test-set row.", "side_effects": "sklearn dependency. Outputs test set only, not full input.", "anti_uses": "For generic binary classification prefer logistic_regression_model. For time-based signal decay use arima_forecast.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ] }, { "id": "clickhouse_io_manager", "name": "ClickHouseIOManager", "category": "io_manager", "description": "Wrap dagster-clickhouse-pandas's ClickhousePandasIOManager so DataFrame assets persist to ClickHouse.", "version": "1.0.0", "author": "Dagster Community", "path": "io_managers/clickhouse_io_manager", "tags": [ "io_manager", "clickhouse", "olap", "official" ], "dependencies": { "pip": [ "dagster", "dagster-clickhouse-pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/clickhouse_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/clickhouse_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/clickhouse_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/clickhouse_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/clickhouse_io_manager/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "ClickHouse", "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:clickhouse" ] }, { "id": "clickhouse_polars_io_manager", "name": "ClickhousePolarsIOManager", "category": "io_manager", "description": "Wrap dagster-clickhouse-polars's ClickhousePolarsIOManager so polars.DataFrame assets persist to ClickHouse.", "version": "1.0.0", "author": "Dagster Community", "path": "io_managers/clickhouse_polars_io_manager", "tags": [ "io_manager", "clickhouse", "polars", "olap", "official" ], "dependencies": { "pip": [ "dagster", "dagster-clickhouse-polars", "polars" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/clickhouse_polars_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/clickhouse_polars_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/clickhouse_polars_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/clickhouse_polars_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/clickhouse_polars_io_manager/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "ClickHouse", "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:clickhouse" ] }, { "id": "clickhouse_resource", "name": "ClickHouse Resource", "category": "resource", "description": "ClickHouse connection resource via clickhouse-connect (HTTP) + SQLAlchemy URL via clickhouse-sqlalchemy.", "path": "resources/clickhouse_resource", "tags": [ "resource", "clickhouse", "olap", "mpp" ], "vendor": "ClickHouse", "dependencies": { "pip": [ "clickhouse-connect>=0.7.0", "sqlalchemy>=2.0.0", "clickhouse-sqlalchemy" ] }, "version": "1.0.0", "author": "Dagster Community", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/clickhouse_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/clickhouse_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/clickhouse_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/clickhouse_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/clickhouse_resource/requirements.txt", "validation": { "level": "live", "last_validated": "2026-05-28", "evidence": "examples/clickhouse.md \u2014 Docker container + Dagster scaffold validated end-to-end" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:clickhouse" ] }, { "id": "clickhouse_table_observation_sensor", "name": "ClickHouse Table Observation Sensor", "category": "observation", "description": "Emit health observations for an external ClickHouse table.", "version": "1.0.0", "author": "Dagster Community", "path": "observations/clickhouse_table_observation_sensor", "tags": [ "observation", "clickhouse", "table", "sensor" ], "dependencies": { "pip": [ "clickhouse-connect>=0.6.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/clickhouse_table_observation_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/clickhouse_table_observation_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/clickhouse_table_observation_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/clickhouse_table_observation_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/clickhouse_table_observation_sensor/requirements.txt", "icon": "si:clickhouse", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "ClickHouse", "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:clickhouse" ] }, { "id": "cloud_dlp_inspect_asset", "name": "Cloud Dlp Inspect Asset", "category": "ai", "description": "Inspect DataFrame text columns for PII / sensitive data via Cloud DLP.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/cloud_dlp_inspect_asset", "tags": [ "cloud-dlp-inspect-asset", "ai" ], "dependencies": { "pip": [ "google-cloud-dlp", "google-auth", "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/cloud_dlp_inspect_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/cloud_dlp_inspect_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/cloud_dlp_inspect_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/cloud_dlp_inspect_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/cloud_dlp_inspect_asset/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "consumes": [ "resource:cloud_dlp" ] }, { "id": "cloud_dlp_pii_check", "name": "Cloud Dlp Pii Check", "category": "check", "description": "Cloud DLP-backed asset check: fail (or warn) if forbidden PII is present.", "version": "1.0.0", "author": "Dagster Community", "path": "asset_checks/cloud_dlp_pii_check", "tags": [ "cloud-dlp-pii-check", "asset_checks" ], "dependencies": { "pip": [ "google-cloud-dlp", "google-auth", "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/cloud_dlp_pii_check/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/cloud_dlp_pii_check/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/cloud_dlp_pii_check/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/cloud_dlp_pii_check/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/cloud_dlp_pii_check/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "produces": [ "asset_check" ], "agent_hints": {}, "consumes": [ "resource:cloud_dlp" ] }, { "id": "cloud_functions_invoke_asset", "name": "CloudFunctionsInvokeAssetComponent", "category": "infrastructure", "description": "Invoke a deployed Cloud Function (gen 1 / gen 2 / Cloud Run-deployed) over HTTPS with automatic OIDC authentication. Static-call mode or per-row mode with payload_template column substitution.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/infrastructure/cloud_functions_invoke_asset", "tags": [ "infrastructure", "google", "cloud-functions", "cloud-run", "compute", "trigger", "oidc" ], "dependencies": { "pip": [ "dagster>=1.8.0", "pandas>=1.5.0", "google-auth>=2.0.0", "requests>=2.28.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/cloud_functions_invoke_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/cloud_functions_invoke_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/cloud_functions_invoke_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/cloud_functions_invoke_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/cloud_functions_invoke_asset/requirements.txt", "component_type": "dagster_component_templates.CloudFunctionsInvokeAssetComponent", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": {}, "capabilities": [ "cloud_function.invoke" ], "consumes": [ "resource:cloud_functions" ] }, { "id": "cloud_logging_query_asset", "name": "Cloud Logging Query Asset", "category": "source", "description": "Run a Cloud Logging filter and return matching entries as a DataFrame.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/source/cloud_logging_query_asset", "tags": [ "cloud-logging-query-asset", "source" ], "dependencies": { "pip": [ "google-cloud-logging", "google-auth", "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/cloud_logging_query_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/cloud_logging_query_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/cloud_logging_query_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/cloud_logging_query_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/cloud_logging_query_asset/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root source) \u2014 runs a query against Google Cloud Logging log store.", "outputs": "DataFrame with log/metric rows \u2014 schema depends on the query.", "side_effects": "Requires gcp_credentials. Query language is vendor-specific.", "anti_uses": "For streaming logs use a broker-to-database ingest (kafka_to_database_asset). Not for writing.", "requires_resources": [ "gcp_credentials" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:cloud_logging" ] }, { "id": "cloud_monitoring_metrics_asset", "name": "Cloud Monitoring Metrics Asset", "category": "source", "description": "Query Cloud Monitoring time-series and return as a DataFrame.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/source/cloud_monitoring_metrics_asset", "tags": [ "cloud-monitoring-metrics-asset", "source" ], "dependencies": { "pip": [ "google-cloud-monitoring", "google-auth", "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/cloud_monitoring_metrics_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/cloud_monitoring_metrics_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/cloud_monitoring_metrics_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/cloud_monitoring_metrics_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/cloud_monitoring_metrics_asset/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root source) \u2014 runs a query against Google Cloud Monitoring metrics log store.", "outputs": "DataFrame with log/metric rows \u2014 schema depends on the query.", "side_effects": "Requires gcp_credentials. Query language is vendor-specific.", "anti_uses": "For streaming logs use a broker-to-database ingest (kafka_to_database_asset). Not for writing.", "requires_resources": [ "gcp_credentials" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:cloud_monitoring" ] }, { "id": "cloud_run_job_trigger_asset", "name": "CloudRunJobTriggerAssetComponent", "category": "infrastructure", "description": "Trigger a single deployed Cloud Run job and wait for it to finish, with optional per-execution container overrides (env / args / task_count / timeout). Use google_cloud_run_jobs (integration) for batch import of all jobs in a project.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/infrastructure/cloud_run_job_trigger_asset", "tags": [ "infrastructure", "google", "cloud-run", "compute", "trigger", "external-job" ], "dependencies": { "pip": [ "dagster>=1.8.0", "pandas>=1.5.0", "google-cloud-run>=0.10.0", "google-auth>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/cloud_run_job_trigger_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/cloud_run_job_trigger_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/cloud_run_job_trigger_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/cloud_run_job_trigger_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/cloud_run_job_trigger_asset/requirements.txt", "component_type": "dagster_component_templates.CloudRunJobTriggerAssetComponent", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": {}, "capabilities": [ "cloud_run_job.trigger" ], "consumes": [ "resource:cloud_run" ] }, { "id": "cloud_tasks_enqueue_asset", "name": "Cloud Tasks Enqueue Asset", "category": "sink", "description": "Enqueue one Cloud Tasks HTTP task per row of an upstream DataFrame.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/sinks/cloud_tasks_enqueue_asset", "tags": [ "cloud-tasks-enqueue-asset", "sinks" ], "dependencies": { "pip": [ "google-cloud-tasks", "google-auth", "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/cloud_tasks_enqueue_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/cloud_tasks_enqueue_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/cloud_tasks_enqueue_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/cloud_tasks_enqueue_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/cloud_tasks_enqueue_asset/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "DataFrame with task payload columns.", "outputs": "None (sink \u2014 enqueues tasks to Google Cloud Tasks).", "side_effects": "One task per row. Requires gcp_credentials.", "requires_resources": [ "gcp_credentials" ], "input_type": "pd.DataFrame", "output_type": null }, "produces": [ "asset" ], "consumes": [ "resource:cloud_tasks" ] }, { "id": "cloud_text_to_speech_asset", "name": "Cloud Text To Speech Asset", "category": "ai", "description": "Synthesize speech audio from a text column via Cloud Text-to-Speech.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/cloud_text_to_speech_asset", "tags": [ "cloud-text-to-speech-asset", "ai" ], "dependencies": { "pip": [ "google-cloud-texttospeech", "google-auth", "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/cloud_text_to_speech_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/cloud_text_to_speech_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/cloud_text_to_speech_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/cloud_text_to_speech_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/cloud_text_to_speech_asset/requirements.txt", "validation": { "level": "code", "evidence": "", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "cloudformation_asset", "name": "CloudFormation Asset", "category": "infrastructure", "description": "Deploy or update an AWS CloudFormation stack as a Dagster asset.", "path": "assets/infrastructure/cloudformation_asset", "tags": [ "infrastructure", "cloudformation", "asset" ], "icon": "Server", "type": "dagster_component_templates.CloudFormationAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/cloudformation_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/cloudformation_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/cloudformation_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/cloudformation_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/cloudformation_asset/requirements.txt", "component_type": "dagster_component_templates.CloudFormationAssetComponent", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/bicep_self_provision.md", "last_validated": "2026-05-06" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "boto3" ] }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "coalesce_job_sensor", "name": "Coalesce Job Sensor", "category": "sensor", "description": "Trigger a Dagster job when a Coalesce job run completes.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/coalesce_job_sensor", "tags": [ "sensor", "coalesce", "job" ], "dependencies": { "pip": [ "requests>=2.28.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/coalesce_job_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/coalesce_job_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/coalesce_job_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/coalesce_job_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/coalesce_job_sensor/requirements.txt", "icon": "Radar", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "sensor" ], "agent_hints": {}, "capabilities": [ "coalesce_job.trigger" ], "consumes": [ "resource:coalesce" ] }, { "id": "coalesce_project", "name": "Coalesce Project", "category": "infrastructure", "description": "Shared Coalesce connection config.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/infrastructure/coalesce_run_asset", "tags": [ "infrastructure", "coalesce", "run", "asset" ], "dependencies": { "pip": [ "requests>=2.28.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/coalesce_run_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/coalesce_run_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/coalesce_run_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/coalesce_run_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/coalesce_run_asset/requirements.txt", "icon": "Server", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "multi_asset" ], "stateful": true, "agent_hints": {}, "consumes": [ "resource:coalesce" ] }, { "id": "coalesce_run_asset", "name": "Coalesce Project", "category": "integration", "description": "State-backed component that materializes Coalesce nodes as Dagster assets.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/infrastructure/coalesce_run_asset", "tags": [ "coalesce-run-asset", "infrastructure", "integration" ], "dependencies": { "pip": [ "dagster", "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/coalesce_run_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/coalesce_run_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/coalesce_run_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/coalesce_run_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/coalesce_run_asset/requirements.txt", "validation": { "level": "code", "evidence": "", "last_validated": "2026-05-11" }, "produces": [ "multi_asset" ], "stateful": true, "agent_hints": {}, "consumes": [ "resource:coalesce" ] }, { "id": "cohort_analysis", "name": "Cohort Analysis", "category": "analytics", "description": "Component for cohort retention analysis.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/cohort_analysis", "tags": [ "analytics", "cohort", "analysis" ], "dependencies": { "pip": [ "pandas>=1.5.0", "numpy>=1.24.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/cohort_analysis/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/cohort_analysis/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/cohort_analysis/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/cohort_analysis/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/cohort_analysis/requirements.txt", "icon": "BarChart2", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/retail_analytics.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with user_id + event_date columns.", "outputs": "DataFrame in cohort-retention shape: cohort_period (rows) \u00d7 age_period (columns) with retention values.", "side_effects": "REDUCES rows drastically (one row per cohort). Column set becomes {cohort_period, N age-period columns}.", "anti_uses": "Required config: customer_id_field, activity_date_field (the timestamp column), cohort_period ('daily'|'weekly'|'monthly'), retention_periods (int). Optional: first_date_field (auto-derived if omitted), include_revenue+revenue_field. Do NOT rely on inferred columns \u2014 always specify activity_date_field explicitly (e.g. 'order_date' or 'signup_month').", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ] }, { "id": "community_component_installer", "name": "Community Component Installer", "category": "infrastructure", "description": "Download other community components from the registry at refresh-state time, configured via YAML.", "path": "assets/infrastructure/community_component_installer", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/community_component_installer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/community_component_installer/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/community_component_installer/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/community_component_installer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/community_component_installer/requirements.txt", "tags": [ "infrastructure", "registry", "installer", "community" ], "icon": "Download", "type": "dagster_component_templates.CommunityComponentInstallerComponent", "component_type": "dagster_component_templates.CommunityComponentInstallerComponent", "validation": { "level": "code", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "requests" ] }, "produces": [ "multi_asset" ], "stateful": true, "agent_hints": {}, "ui_editable": true }, { "id": "composer_airflow_auth_backend", "name": "Composer Airflow Auth Backend", "category": "resource", "description": "Provide a dagster-airlift AirflowAuthBackend backed by GCP OIDC for Cloud Composer.", "version": "1.0.0", "author": "Dagster Community", "path": "resources/composer_airflow_auth_backend", "tags": [ "composer-airflow-auth-backend", "resources" ], "dependencies": { "pip": [ "dagster-airlift", "google-auth" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/composer_airflow_auth_backend/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/composer_airflow_auth_backend/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/composer_airflow_auth_backend/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/composer_airflow_auth_backend/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/composer_airflow_auth_backend/requirements.txt", "validation": { "level": "code", "evidence": "", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:airflow" ] }, { "id": "contract_extractor", "name": "Contract Extractor", "category": "ai", "description": "Extract key clauses and metadata from legal contracts using an LLM.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/contract_extractor", "tags": [ "ai", "extraction", "legal", "contracts" ], "dependencies": { "pip": [ "dagster", "pandas>=1.5.0", "litellm>=1.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/contract_extractor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/contract_extractor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/contract_extractor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/contract_extractor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/contract_extractor/requirements.txt", "icon": "FileText", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/document_extractors.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "conversation_memory", "name": "Conversation Memory", "category": "ai", "description": "Component for managing conversation memory.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/conversation_memory", "tags": [ "ai", "conversation", "memory" ], "dependencies": { "pip": [] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/conversation_memory/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/conversation_memory/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/conversation_memory/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/conversation_memory/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/conversation_memory/requirements.txt", "icon": "Sparkles", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/vector_rag.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "coordinate_transformer", "name": "Coordinate Transformer", "category": "analytics", "description": "Reproject coordinate columns from one CRS to another using pyproj.", "path": "assets/analytics/coordinate_transformer", "tags": [ "analytics", "coordinate", "transformer" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/coordinate_transformer/schema.json", "component_type": "dagster_component_templates.CoordinateTransformerComponent", "icon": "BarChart2", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/coordinate_transformer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/coordinate_transformer/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/coordinate_transformer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/coordinate_transformer/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with coordinate columns in one CRS.", "outputs": "DataFrame with coordinates in a target CRS.", "side_effects": "Modifies coordinate values IN PLACE. Requires pyproj.", "requires_pip": [ "pyproj" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "pyproj" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "cosmosdb_reader", "name": "CosmosDB Reader", "category": "source", "description": "Component for querying items from an Azure Cosmos DB container.", "path": "assets/sources/cosmosdb_reader", "tags": [ "source", "cosmosdb", "reader" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/cosmosdb_reader/schema.json", "component_type": "dagster_component_templates.CosmosdbReaderComponent", "icon": "si:microsoftazure", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/cosmosdb_reader/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/cosmosdb_reader/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/cosmosdb_reader/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/cosmosdb_reader/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/cosmosdb_round_trip.md", "last_validated": "2026-05-06" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "azure-cosmos" ] }, "agent_hints": { "inputs": "None (root source) \u2014 reads documents/records from Azure Cosmos DB.", "outputs": "DataFrame with columns from Azure Cosmos DB docs (nested fields may need dataframe_flatten_nested_columns downstream).", "side_effects": "Read-only. Requires azure_credentials.", "anti_uses": "For writing TO Azure Cosmos DB use its writer. For SQL DBs use dataframe_from_sql.", "requires_resources": [ "azure_credentials" ], "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ], "consumes": [ "resource:cosmosdb" ] }, { "id": "cosmosdb_resource", "name": "Azure Cosmos DB Resource", "category": "resource", "description": "Register an Azure Cosmos DB resource for globally distributed multi-model database access", "version": "1.0.0", "author": "Dagster Community", "path": "resources/cosmosdb_resource", "tags": [ "resource", "cosmosdb", "azure", "database", "nosql" ], "dependencies": { "pip": [ "azure-cosmos" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/cosmosdb_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/cosmosdb_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/cosmosdb_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/cosmosdb_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/cosmosdb_resource/requirements.txt", "icon": "si:azurecosmosdb", "x-dagster-provides": [ "cosmosdb_resource" ], "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/cosmosdb_round_trip.md", "last_validated": "2026-05-06" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:cosmosdb" ] }, { "id": "cosmosdb_writer", "name": "CosmosDB Writer", "category": "sink", "description": "Write a DataFrame to an Azure Cosmos DB container with upsert or insert mode", "path": "assets/sinks/cosmosdb_writer", "tags": [ "sink", "cosmosdb", "azure", "nosql", "document-database" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/cosmosdb_writer/schema.json", "component_type": "dagster_component_templates.cosmosdb_writer", "icon": "si:microsoftazure", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/cosmosdb_writer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/cosmosdb_writer/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/cosmosdb_writer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/cosmosdb_writer/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/cosmosdb_round_trip.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes to Azure Cosmos DB).", "side_effects": "Writes to Azure Cosmos DB. Requires azure_credentials. Mode / write-disposition per config.", "anti_uses": "For local files use dataframe_to_parquet/csv/json.", "requires_resources": [ "azure_credentials" ], "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "azure-cosmos" ] }, "produces": [ "asset" ], "consumes": [ "resource:cosmosdb" ] }, { "id": "couchdb_reader", "name": "CouchDB Reader", "category": "source", "description": "Component for querying documents from an Apache CouchDB database.", "path": "assets/sources/couchdb_reader", "tags": [ "source", "couchdb", "reader" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/couchdb_reader/schema.json", "component_type": "dagster_component_templates.CouchdbReaderComponent", "icon": "si:apachecouchdb", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/couchdb_reader/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/couchdb_reader/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/couchdb_reader/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/couchdb_reader/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "requests" ] }, "agent_hints": { "inputs": "None (root source) \u2014 reads documents/records from CouchDB.", "outputs": "DataFrame with columns from CouchDB docs (nested fields may need dataframe_flatten_nested_columns downstream).", "side_effects": "Read-only. Requires couchdb_resource.", "anti_uses": "For writing TO CouchDB use its writer. For SQL DBs use dataframe_from_sql.", "requires_resources": [ "couchdb_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ], "consumes": [ "resource:couchdb" ] }, { "id": "couchdb_resource", "name": "Apache CouchDB Resource", "category": "resource", "description": "Register a CouchDB resource for document-oriented database access via HTTP", "version": "1.0.0", "author": "Dagster Community", "path": "resources/couchdb_resource", "tags": [ "resource", "couchdb", "database", "nosql" ], "dependencies": { "pip": [ "couchdb" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/couchdb_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/couchdb_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/couchdb_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/couchdb_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/couchdb_resource/requirements.txt", "icon": "si:apachecouchdb", "x-dagster-provides": [ "couchdb_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:couchdb" ] }, { "id": "couchdb_writer", "name": "CouchDB Writer", "category": "sink", "description": "Write a DataFrame to an Apache CouchDB database with upsert or insert mode and optional custom document IDs", "version": "1.0.0", "author": "Dagster Community", "path": "assets/sinks/couchdb_writer", "tags": [ "sink", "couchdb", "nosql" ], "dependencies": { "pip": [ "pandas", "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/couchdb_writer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/couchdb_writer/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/couchdb_writer/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/couchdb_writer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/couchdb_writer/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes to CouchDB).", "side_effects": "Writes to CouchDB. Requires couchdb_resource. Mode / write-disposition per config.", "anti_uses": "For local files use dataframe_to_parquet/csv/json.", "requires_resources": [ "couchdb_resource" ], "input_type": "pd.DataFrame", "output_type": null }, "produces": [ "asset" ], "consumes": [ "resource:couchdb" ] }, { "id": "count_records", "name": "Count Records", "category": "transformation", "description": "Count rows in a DataFrame, optionally grouped by one or more columns.", "path": "assets/transforms/count_records", "tags": [ "transformation", "count", "records" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/count_records/schema.json", "component_type": "dagster_component_templates.CountRecordsComponent", "icon": "Shuffle", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/count_records/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/count_records/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/count_records/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/count_records/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/transformations.md", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "Any DataFrame.", "outputs": "Single-row DataFrame with a count column (or emits metadata).", "side_effects": "Reduces to 1 row.", "anti_uses": "Returns a SINGLE row count (grand total). NOT for grouped counts \u2014 for 'count per X' use `summarize` with `aggregations: {count: {col: , agg: 'count'}}`. For non-null column counts use dataframe_describe.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "count_regression", "name": "CountRegression", "category": "analytics", "description": "Fit a Poisson regression for count outcomes and emit predictions.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/count_regression", "tags": [ "analytics", "regression", "poisson", "glm" ], "dependencies": { "pip": [ "pandas", "statsmodels", "numpy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/count_regression/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/count_regression/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/count_regression/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/count_regression/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/count_regression/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with count target column + feature columns.", "outputs": "DataFrame with fitted values / predictions.", "side_effects": "Requires statsmodels or sklearn. For Poisson / negative-binomial / zero-inflated models.", "anti_uses": "Not for continuous regression (use linear_regression_model). Not for binary classification (use logistic_regression_model).", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "create_points", "name": "CreatePoints", "category": "analytics", "description": "Build a `geometry` column of shapely Points from lat/lng columns.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/create_points", "tags": [ "analytics", "spatial", "geopandas", "points" ], "dependencies": { "pip": [ "pandas", "geopandas", "shapely" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/create_points/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/create_points/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/create_points/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/create_points/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/create_points/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/store_coverage.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with a geometry column (shapely / geopandas).", "outputs": "DataFrame with point geometries from lat/lon or x/y columns.", "side_effects": "Requires shapely + geopandas.", "anti_uses": "For lat/lon columns use points_from_latlon first to construct geometry.", "requires_pip": [ "shapely", "geopandas" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "create_samples", "name": "Create Samples", "category": "transformation", "description": "Split a DataFrame into train/test/validation sets.", "path": "assets/transforms/create_samples", "tags": [ "transformation", "create", "samples" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/create_samples/schema.json", "component_type": "dagster_component_templates.CreateSamplesComponent", "icon": "Shuffle", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/create_samples/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/create_samples/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/create_samples/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/create_samples/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/wine_ml_pipeline.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "Any DataFrame.", "outputs": "DataFrame with N sampled rows (random or stratified).", "side_effects": "Reduces row count. For stratified samples, column set unchanged.", "anti_uses": "For train/test split use train_test_splitter. For top-N use top_n_per_group.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "scikit-learn" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "crm_data_standardizer", "name": "CRM Data Standardizer", "category": "analytics", "description": "Component for standardizing CRM data across platforms.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/crm_data_standardizer", "tags": [ "analytics", "crm", "data", "standardizer" ], "dependencies": { "pip": [ "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/crm_data_standardizer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/crm_data_standardizer/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/crm_data_standardizer/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/crm_data_standardizer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/crm_data_standardizer/requirements.txt", "icon": "BarChart2", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame from a CRM (Salesforce / HubSpot / Pipedrive).", "outputs": "Standardized (account, contact, opportunity, activity) schema." }, "produces": [ "asset", "asset_check" ] }, { "id": "cron_schedule", "name": "CronSchedule", "category": "infrastructure", "description": "Run an asset selection on a cron schedule.", "version": "1.0.0", "author": "Dagster Community", "path": "schedules/cron_schedule", "tags": [ "infrastructure", "schedule", "cron", "orchestration" ], "dependencies": { "pip": [] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/schedules/cron_schedule/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/schedules/cron_schedule/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/schedules/cron_schedule/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/schedules/cron_schedule/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/schedules/cron_schedule/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/bicep_self_provision.md", "last_validated": "2026-05-06" }, "produces": [ "job", "schedule" ], "agent_hints": {} }, { "id": "cross_join", "name": "CrossJoinComponent", "category": "transformation", "description": "Cartesian product of two DataFrames. Optional row-count guard to prevent memory blowups.", "version": "1.0.0", "author": "Dagster Community", "path": "transforms/cross_join", "tags": [ "cross-join", "cartesian", "join" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/cross_join/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/cross_join/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/cross_join/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/cross_join/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/cross_join/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/transformations.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "TWO DataFrames \u2014 `left_asset_key` and `right_asset_key`.", "outputs": "Cartesian product DataFrame \u2014 every row from left combined with every row from right. Row count = left \u00d7 right.", "side_effects": "Row count MULTIPLIES. A cross-join of 1000\u00d71000 rows produces 1M rows. Use sparingly.", "anti_uses": "For matching rows on a key use dataframe_join. Cross join is a niche operation \u2014 often the user actually wants a keyed join." }, "produces": [ "asset" ] }, { "id": "cross_tab", "name": "Cross Tab", "category": "transformation", "description": "Pivot table / cross-tabulation \u2014 rotate column values into new column headers.", "path": "assets/transforms/cross_tab", "tags": [ "transformation", "cross", "tab" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/cross_tab/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/cross_tab/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/cross_tab/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/cross_tab/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/cross_tab/requirements.txt", "icon": "Shuffle", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/transformations.md", "last_validated": "2026-05-14" }, "agent_hints": { "inputs": "DataFrame with categorical columns.", "outputs": "DataFrame in wide crosstab shape \u2014 row keys \u00d7 column values with counts/aggregations.", "side_effects": "Reshapes rows and columns significantly. Downstream must reference new pivoted names.", "anti_uses": "For groupby aggregation use summarize. For long \u2192 wide with values use pivot.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "cross_validation", "name": "Cross Validation", "category": "analytics", "description": "Run k-fold cross-validation on a dataset and return per-fold train/test scores.", "path": "assets/analytics/cross_validation", "tags": [ "analytics", "cross", "validation" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/cross_validation/schema.json", "component_type": "dagster_component_templates.CrossValidationComponent", "icon": "BarChart2", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/cross_validation/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/cross_validation/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/cross_validation/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/cross_validation/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/wine_ml_pipeline.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame + model config.", "outputs": "DataFrame with per-fold scores + summary statistics.", "side_effects": "Requires sklearn. Runs the model N times.", "anti_uses": "Not for hyperparameter tuning (use grid_search or similar). For a single train/test split use the model component directly.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "scikit-learn" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "cube_query_asset", "name": "Cube Query Asset", "vendor": "Cube", "category": "analytics", "description": "Run a Cube semantic-layer query (REST /v1/load) and materialize as a Dagster asset (pandas DataFrame). Great for landing governed metrics in the warehouse or feeding downstream AI/reporting.", "path": "assets/analytics/cube_query_asset", "tags": [ "cube", "semantic-layer", "analytics", "agentic", "metrics" ], "icon": "si:cube", "type": "dagster_community_components.CubeQueryAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/cube_query_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/cube_query_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/cube_query_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/cube_query_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/cube_query_asset/requirements.txt", "component_type": "dagster_community_components.CubeQueryAssetComponent", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/cube_query.md", "last_validated": "2026-07-06" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "requests", "pandas", "tabulate" ] }, "produces": [ "asset" ], "agent_hints": {}, "capabilities": [ "cube_semantic.query" ], "consumes": [ "resource:cube_semantic" ] }, { "id": "customer_360", "name": "Customer 360", "category": "analytics", "description": "Component for creating unified customer profiles (Customer 360 view).", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/customer_360", "tags": [ "analytics", "customer", "360" ], "dependencies": { "pip": [ "pandas>=1.5.0", "numpy>=1.24.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/customer_360/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/customer_360/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/customer_360/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/customer_360/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/customer_360/requirements.txt", "icon": "BarChart2", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "Multiple DataFrames (transactions, engagements, profile) via upstream keys.", "outputs": "DataFrame with one row per customer + composite metrics.", "side_effects": "Reduces rows to per-customer. Column set = customer_id + aggregated metrics." }, "produces": [ "asset", "asset_check" ] }, { "id": "customer_health_score", "name": "Customer Health Score", "category": "analytics", "description": "Component that calculates customer health scores from multiple data sources.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/customer_health_score", "tags": [ "analytics", "customer", "health", "score" ], "dependencies": { "pip": [] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/customer_health_score/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/customer_health_score/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/customer_health_score/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/customer_health_score/example.yaml", "icon": "BarChart2", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/customer_health_score/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with customer engagement/usage/spend features.", "outputs": "DataFrame + `health_score` column (0-100 or similar).", "side_effects": "Adds column. Score is a weighted combination per config.", "anti_uses": "For churn probability use churn_prediction. For LTV use ltv_prediction." }, "produces": [ "asset" ] }, { "id": "customer_journey_mapping", "name": "Customer Journey Mapping", "category": "analytics", "description": "Component for mapping and analyzing customer journeys.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/customer_journey_mapping", "tags": [ "analytics", "customer", "journey", "mapping" ], "dependencies": { "pip": [] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/customer_journey_mapping/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/customer_journey_mapping/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/customer_journey_mapping/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/customer_journey_mapping/example.yaml", "icon": "BarChart2", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/customer_journey_mapping/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/retail_ltv.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with user + event + timestamp columns.", "outputs": "DataFrame with journey paths (sequences of events per user).", "side_effects": "May reshape events into path columns." }, "produces": [ "asset", "asset_check" ] }, { "id": "customer_segmentation", "name": "Customer Segmentation (RFM)", "category": "analytics", "description": "Component that segments customers using RFM analysis.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/customer_segmentation", "tags": [ "analytics", "customer", "segmentation" ], "dependencies": { "pip": [] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/customer_segmentation/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/customer_segmentation/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/customer_segmentation/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/customer_segmentation/example.yaml", "icon": "si:segment", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/customer_segmentation/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/churn.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with customer features (RFM or behavioral).", "outputs": "DataFrame + `segment` column (or new rows summarizing segments).", "side_effects": "Requires sklearn for clustering-based segmentation.", "anti_uses": "For pure RFM buckets use rfm_segmentation. For churn use churn_prediction.", "requires_pip": [ "sklearn" ] }, "produces": [ "asset" ], "consumes": [ "resource:segment" ] }, { "id": "dagster_failures_to_otlp_sensor", "name": "Dagster Failures \u2192 OTLP Sensor", "category": "sensor", "description": "Push Dagster run failure events as OTLP/HTTP log records \u2014 targets Honeycomb, Datadog OTel-ingest, Grafana Loki via OTel Collector, AWS CloudWatch OTel.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/dagster_failures_to_otlp_sensor", "tags": [ "sensor", "telemetry", "otlp", "opentelemetry", "honeycomb", "datadog", "loki" ], "vendor": "OpenTelemetry", "dependencies": { "pip": [ "requests>=2.28" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_failures_to_otlp_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_failures_to_otlp_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_failures_to_otlp_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_failures_to_otlp_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_failures_to_otlp_sensor/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-28" }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:otlp" ] }, { "id": "dagster_materializations_to_prometheus_sensor", "name": "Dagster Asset Materializations \u2192 Prometheus Sensor", "category": "sensor", "description": "Push per-asset materialization metrics (counter + last-materialized timestamp) to Prometheus Push Gateway or VictoriaMetrics. Filtered or workspace-wide.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/dagster_materializations_to_prometheus_sensor", "tags": [ "sensor", "telemetry", "prometheus", "victoriametrics", "asset", "freshness" ], "vendor": "Prometheus", "dependencies": { "pip": [ "requests>=2.28" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_materializations_to_prometheus_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_materializations_to_prometheus_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_materializations_to_prometheus_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_materializations_to_prometheus_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_materializations_to_prometheus_sensor/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-28" }, "produces": [ "sensor" ], "agent_hints": {}, "capabilities": [ "prometheus.write" ], "consumes": [ "resource:prometheus" ] }, { "id": "dagster_plus_asset_events_ingestion", "name": "DagsterPlusAssetEventsIngestionComponent", "category": "ingestion", "description": "Pull Dagster+ asset materialization / observation events via the GraphQL API.", "version": "1.0.0", "author": "Dagster Community", "path": "ingestion/dagster_plus_asset_events_ingestion", "tags": [ "dagster-plus", "assets", "materializations", "siem" ], "dependencies": { "pip": [ "pandas", "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/dagster_plus_asset_events_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/dagster_plus_asset_events_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/dagster_plus_asset_events_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/dagster_plus_asset_events_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/dagster_plus_asset_events_ingestion/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 reads asset-materialization events from Dagster+.", "outputs": "DataFrame of asset events (asset_key, timestamp, run_id, status, metadata).", "side_effects": "Requires Dagster+ API token. Rate-limited.", "anti_uses": "For run-level events use dagster_plus_run_events_ingestion. For audit trail use dagster_plus_audit_log_ingestion.", "requires_resources": [ "dagster_plus_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "dagster_plus_audit_log_ingestion", "name": "DagsterPlusAuditLogIngestionComponent", "category": "ingestion", "description": "Pull Dagster+ audit-log entries (logins, deployment changes, permission edits) via the Dagster+ GraphQL API.", "version": "1.0.0", "author": "Dagster Community", "path": "ingestion/dagster_plus_audit_log_ingestion", "tags": [ "dagster-plus", "audit-log", "siem", "security" ], "dependencies": { "pip": [ "pandas", "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/dagster_plus_audit_log_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/dagster_plus_audit_log_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/dagster_plus_audit_log_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/dagster_plus_audit_log_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/dagster_plus_audit_log_ingestion/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/dagster_plus_to_sentinel.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 reads Dagster+ audit log (org-level actions).", "outputs": "DataFrame of audit events.", "side_effects": "Requires Dagster+ API token with admin scope.", "requires_resources": [ "dagster_plus_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "dagster_plus_run_events_ingestion", "name": "DagsterPlusRunEventsIngestionComponent", "category": "ingestion", "description": "Pull Dagster+ run records (every job run, status, duration, tags) via the Dagster+ GraphQL API.", "version": "1.0.0", "author": "Dagster Community", "path": "ingestion/dagster_plus_run_events_ingestion", "tags": [ "dagster-plus", "runs", "events", "siem" ], "dependencies": { "pip": [ "pandas", "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/dagster_plus_run_events_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/dagster_plus_run_events_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/dagster_plus_run_events_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/dagster_plus_run_events_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/dagster_plus_run_events_ingestion/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 reads run-level events from Dagster+.", "outputs": "DataFrame of run events (run_id, status, started_at, ended_at, failure_reason).", "side_effects": "Requires Dagster+ API token.", "requires_resources": [ "dagster_plus_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "dagster_plus_to_siem_job", "name": "DagsterPlusToSiemJobComponent", "category": "jobs", "description": "Compound op job: pull Dagster+ events (audit-log/runs/asset-events) \u2192 optionally normalize \u2192 ship to SIEM (Splunk/Sentinel/Datadog/Sumo/S3) on cron.", "version": "1.0.0", "author": "Dagster Community", "path": "jobs/dagster_plus_to_siem_job", "tags": [ "compound", "job", "dagster-plus", "siem", "audit-log", "security" ], "dependencies": { "pip": [ "pandas", "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/dagster_plus_to_siem_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/dagster_plus_to_siem_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/dagster_plus_to_siem_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/dagster_plus_to_siem_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/dagster_plus_to_siem_job/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/dagster_plus_to_sentinel.md", "last_validated": "2026-05-06" }, "produces": [ "job", "schedule" ], "agent_hints": {} }, { "id": "dagster_runs_to_influxdb_sensor", "name": "Dagster Runs \u2192 InfluxDB Sensor", "category": "sensor", "description": "Push Dagster run lifecycle metrics to InfluxDB 2.x / 3.x (and AWS Timestream for InfluxDB) as line protocol on every run completion.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/dagster_runs_to_influxdb_sensor", "tags": [ "sensor", "telemetry", "influxdb", "timeseries", "observability" ], "vendor": "InfluxDB", "dependencies": { "pip": [ "requests>=2.28" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_influxdb_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_influxdb_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_influxdb_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_influxdb_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_influxdb_sensor/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-28" }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:influxdb" ] }, { "id": "dagster_runs_to_otlp_metrics_sensor", "name": "Dagster Runs \u2192 OTLP Metrics Sensor", "category": "sensor", "description": "Push Dagster run lifecycle events as OpenTelemetry metrics (Sum + Gauge) via OTLP/HTTP. Targets Datadog OTel ingest, Grafana OTel, Honeycomb metrics, Splunk OTel Collector metrics receiver, etc. Distinct from dagster_runs_to_otlp_sensor which emits OTel logs.", "path": "sensors/dagster_runs_to_otlp_metrics_sensor", "tags": [ "sensor", "observability", "otel", "opentelemetry", "metrics" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_otlp_metrics_sensor/schema.json", "component_type": "dagster_component_templates.DagsterRunsToOtlpMetricsSensorComponent", "icon": "Activity", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_otlp_metrics_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_otlp_metrics_sensor/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_otlp_metrics_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_otlp_metrics_sensor/requirements.txt", "validation": { "level": "live", "evidence": "Validated against otel/opentelemetry-collector-contrib in Docker \u2014 4 envelopes received with correct Sum/Gauge data points and resource attrs.", "last_validated": "2026-06-04" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "requests" ] }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:otlp" ] }, { "id": "dagster_runs_to_otlp_sensor", "name": "Dagster Runs \u2192 OTLP Sensor", "category": "sensor", "description": "Push Dagster run lifecycle events (success + failure) as OTLP/HTTP log records to any OTel-compatible backend (Splunk via Splunk OTC, Datadog, Honeycomb, Sumo, Loki via OTC).", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/dagster_runs_to_otlp_sensor", "tags": [ "sensor", "telemetry", "otlp", "opentelemetry", "honeycomb", "datadog", "splunk", "sumo", "observability" ], "vendor": "OpenTelemetry", "dependencies": { "pip": [ "requests>=2.28" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_otlp_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_otlp_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_otlp_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_otlp_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_otlp_sensor/requirements.txt", "validation": { "level": "code", "last_validated": "2026-06-04" }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:otlp" ] }, { "id": "dagster_runs_to_prometheus_sensor", "name": "Dagster Runs \u2192 Prometheus Sensor", "category": "sensor", "description": "Push Dagster run lifecycle metrics (duration / count / last-finished) to Prometheus Push Gateway, VictoriaMetrics, or Mimir on every run completion.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/dagster_runs_to_prometheus_sensor", "tags": [ "sensor", "telemetry", "prometheus", "victoriametrics", "mimir", "observability" ], "vendor": "Prometheus", "dependencies": { "pip": [ "requests>=2.28" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_prometheus_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_prometheus_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_prometheus_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_prometheus_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_prometheus_sensor/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-28" }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:prometheus" ] }, { "id": "dagster_runs_to_splunk_hec_sensor", "name": "Dagster Runs \u2192 Splunk HEC Sensor", "category": "sensor", "description": "Push Dagster run lifecycle events (success + failure) directly to Splunk via HTTP Event Collector (HEC). One hop, no OTel Collector required.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/dagster_runs_to_splunk_hec_sensor", "tags": [ "sensor", "telemetry", "splunk", "hec", "observability" ], "vendor": "Splunk", "dependencies": { "pip": [ "requests>=2.28" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_splunk_hec_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_splunk_hec_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_splunk_hec_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_splunk_hec_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_splunk_hec_sensor/requirements.txt", "validation": { "level": "code", "last_validated": "2026-06-04" }, "produces": [ "sensor" ], "agent_hints": {} }, { "id": "dagster_runs_to_statsd_sensor", "name": "Dagster Runs \u2192 StatsD Sensor", "category": "sensor", "description": "Push Dagster run lifecycle events as StatsD/DogStatsD UDP metrics. No external Python deps \u2014 raw datagrams. Targets the Datadog Agent, local statsd, graphite-statsd, etcd-statsd, Telegraf, Grafana statsd_exporter, etc.", "path": "sensors/dagster_runs_to_statsd_sensor", "tags": [ "sensor", "observability", "statsd", "dogstatsd", "datadog", "metrics" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_statsd_sensor/schema.json", "component_type": "dagster_component_templates.DagsterRunsToStatsdSensorComponent", "icon": "Activity", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_statsd_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_statsd_sensor/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_statsd_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dagster_runs_to_statsd_sensor/requirements.txt", "validation": { "level": "live", "evidence": "Validated against graphiteapp/graphite-statsd in Docker \u2014 tagged metrics (env/job/status/step) confirmed via graphite tag index.", "last_validated": "2026-06-04" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [] }, "produces": [ "sensor" ], "agent_hints": {} }, { "id": "dagstermill_notebook_asset", "name": "DagstermillNotebookAsset", "category": "infrastructure", "description": "Run a Jupyter notebook as a Dagster asset via dagstermill.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/infrastructure/dagstermill_notebook_asset", "tags": [ "infrastructure", "jupyter", "notebook", "papermill", "official" ], "dependencies": { "pip": [ "dagster", "dagstermill", "ipykernel" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/dagstermill_notebook_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/dagstermill_notebook_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/dagstermill_notebook_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/dagstermill_notebook_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/dagstermill_notebook_asset/requirements.txt", "validation": { "level": "live", "last_validated": "2026-05-19", "evidence": "setup_notebooks_demo.sh" }, "produces": [ "asset", "resource" ], "agent_hints": {} }, { "id": "data_cleansing", "name": "Data Cleansing", "category": "transformation", "description": "Fix common data quality issues in string columns of a DataFrame.", "path": "assets/transforms/data_cleansing", "tags": [ "transformation", "data", "cleansing" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/data_cleansing/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/data_cleansing/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/data_cleansing/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/data_cleansing/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/data_cleansing/requirements.txt", "icon": "Shuffle", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/kitchen_sink.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with string columns to normalize.", "outputs": "Same columns; string values trimmed and case-normalized in the specified `columns`.", "side_effects": "Modifies VALUES (not names) IN PLACE. IMPORTANT: if `columns` is omitted or empty, normalize_case applies to ALL string columns INCLUDING target/label columns \u2014 a downstream `filter` condition like \"Survived == 'Yes'\" will then match ZERO rows because values are now 'yes'. Either list `columns` explicitly (excluding labels) or match the normalized case in downstream filters.", "anti_uses": "Not for renaming columns. Not for schema coercion (use type_coercer). Do NOT omit `columns` if you plan to filter on a string label column downstream.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "data_enricher", "name": "Data Enricher", "category": "ai", "description": "Enrich DataFrame rows with LLM-generated fields by sending row context to an LLM and extracting structured new columns.", "path": "assets/ai/data_enricher", "tags": [ "ai", "llm", "enrichment", "classification", "structured-output" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/data_enricher/schema.json", "component_type": "dagster_component_templates.DataEnricherComponent", "icon": "Sparkles", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/data_enricher/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/data_enricher/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/data_enricher/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/data_enricher/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/ai_with_llm.md", "last_validated": "2026-05-08" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "litellm" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "data_masking", "name": "DataMaskingComponent", "category": "transformation", "description": "Rule-based PII masking \u2014 hash, partial-mask (last 4 only), full-redact, or character-substitute. Per-column policies.", "version": "1.0.0", "author": "Dagster Community", "path": "transforms/data_masking", "tags": [ "pii", "masking", "anonymize", "compliance", "gdpr" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/data_masking/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/data_masking/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/data_masking/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/data_masking/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/data_masking/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/transformations.md", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "DataFrame with columns containing PII.", "outputs": "Same columns; PII values redacted/hashed/tokenized per strategy.", "side_effects": "Modifies values IN PLACE. Original values IRRETRIEVABLE if strategy=hash/redact.", "anti_uses": "Config shape: rules=[{column: , method: , ...}]. The rule key is `method` NOT `strategy`. Valid methods: 'hash', 'partial' (keep_last N chars), 'redact' (replace with fixed string), 'pseudonymize' (deterministic surrogate). Not for schema-level column drops (use select_columns). Not reversible with hash/redact." }, "produces": [ "asset" ] }, { "id": "data_remediation_asset", "name": "Data Remediation Asset", "category": "ai", "description": "Apply an agent-produced remediation plan to a DataFrame. Bounded action set (drop_nulls, fill_nulls, dedup, cast_type, clip_outliers, filter_range, strip_whitespace) \u2014 the LLM picks by name, this component executes safely with a full audit trail.", "path": "assets/ai/data_remediation_asset", "tags": [ "ai", "agentic", "dq", "remediation", "data-quality", "audit" ], "icon": "Wand", "type": "dagster_community_components.DataRemediationAssetComponent", "component_type": "dagster_community_components.DataRemediationAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/data_remediation_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/data_remediation_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/data_remediation_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/data_remediation_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/data_remediation_asset/requirements.txt", "dependencies": { "pip": [ "pandas" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/data_doctor.md", "last_validated": "2026-07-07" }, "version": "1.0.0", "author": "Dagster Community", "produces": [ "asset" ], "agent_hints": { "output_type": "pd.DataFrame" } }, { "id": "database_constraints_migration", "name": "Database Constraints Migration", "component_type": "dagster_component_templates.DatabaseConstraintsMigrationComponent", "path": "assets/ingestion/database_constraints_migration", "category": "ingestion", "icon": "Key", "description": "Apply PKs, FKs, NOT NULL, DEFAULTs, CHECKs, and UNIQUEs to target tables that already exist (data-first companion to database_tables_migration). Generates ALTER TABLEs from source INFORMATION_SCHEMA. Pre-flight warnings for non-enforcing targets. Status DataFrame per constraint.", "tags": [ "ingestion", "migration", "constraints", "primary-key", "foreign-key", "alter-table", "warehouse", "status-report" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/database_constraints_migration/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/database_constraints_migration/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/database_constraints_migration/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/database_constraints_migration/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/database_constraints_migration/requirements.txt", "dependencies": { "pip": [ "dagster", "pandas>=1.5.0", "sqlalchemy>=2.0.0", "tabulate>=0.10.0" ] }, "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/warehouse_migration.md", "last_validated": "2026-05-15" }, "agent_hints": { "inputs": "None (root) \u2014 adds constraints (PK/FK/CHECK/UNIQUE) to target after data lands.", "outputs": "DataFrame with per-constraint status.", "side_effects": "ALTER TABLE on TARGET DB. Use in data-first workflow after database_replication.", "requires_resources": [ "database_connection" ], "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "produces": [ "asset" ] }, { "id": "database_migration_assessment", "name": "Database Migration Assessment", "component_type": "dagster_component_templates.DatabaseMigrationAssessmentComponent", "path": "assets/sources/database_migration_assessment", "category": "source", "icon": "ClipboardCheck", "description": "Pre-flight migration assessment: dry-run every table + view migration against the target inside a transaction that ROLLS BACK. Returns consolidated DataFrame with status (auto_convertible/needs_review/will_fail), complexity (simple/medium/complex), dialect markers, proposed target DDL. The 'what would happen if I ran this tomorrow?' view \u2014 inspired by AWS SCT Assessment Report + Microsoft SSMA test mode.", "tags": [ "source", "assessment", "migration", "dry-run", "warehouse", "planning", "oracle", "db2" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/database_migration_assessment/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/database_migration_assessment/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/database_migration_assessment/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/database_migration_assessment/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/database_migration_assessment/requirements.txt", "dependencies": { "pip": [ "dagster", "pandas>=1.5.0", "sqlalchemy>=2.0.0", "tabulate>=0.10.0" ] }, "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/warehouse_migration.md", "last_validated": "2026-05-16" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "inputs": "None (root) \u2014 introspects source + target DBs.", "outputs": "DataFrame with per-object status (auto_convertible|needs_review|will_fail), complexity, dialect_markers.", "side_effects": "Dry-run of the migration. No writes. Use before database_tables_migration.", "requires_resources": [ "database_connection" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "database_query", "name": "Database Query", "category": "source", "description": "Component for executing SQL queries and materializing results.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/sources/database_query", "tags": [ "source", "database", "query" ], "dependencies": { "pip": [ "pandas>=2.0.0", "sqlalchemy>=2.0.0", "pyarrow>=10.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/database_query/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/database_query/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/database_query/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/database_query/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/database_query/requirements.txt", "icon": "Database", "validation": { "level": "live", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root source) \u2014 runs SQL against a `connection_env_var` URL.", "outputs": "DataFrame with columns from the query.", "side_effects": "None on local data.", "anti_uses": "For vendor-specific integrations prefer the typed reader (e.g. bigquery_query_asset). For DDL introspection use database_schema_inventory.", "requires_resources": [ "database_connection" ], "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ] }, { "id": "database_replication", "name": "Database Replication", "component_type": "dagster_component_templates.DatabaseReplicationComponent", "path": "assets/ingestion/database_replication", "category": "ingestion", "icon": "ArrowRightLeft", "description": "Replicate a table between two SQL databases (Oracle/Db2/Postgres/MySQL/MSSQL \u2192 Snowflake/BigQuery/Redshift/Databricks/etc.) without landing rows in Python memory. Wraps Sling under the hood via the official dagster-sling integration. Supports full_refresh / incremental / snapshot / truncate modes with upsert via primary_key.", "tags": [ "ingestion", "replication", "sling", "elt", "migration", "warehouse", "oracle", "db2", "snowflake", "postgres" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/database_replication/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/database_replication/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/database_replication/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/database_replication/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/database_replication/requirements.txt", "dependencies": { "pip": [ "dagster", "dagster-sling>=0.24.0" ] }, "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/warehouse_migration.md", "last_validated": "2026-05-15" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 reads from a source DB, writes to a target DB.", "outputs": "None (sink-like \u2014 Sling handles both ends). Emits materialization events with row counts.", "side_effects": "Copies data from source_connection_env_var to target. Mode: full_refresh / incremental / truncate.", "anti_uses": "For one-time migration inventory use database_schema_inventory. For DDL migration use database_tables_migration. For DataFrame in-memory analytics use dataframe_from_sql.", "requires_resources": [ "database_connection" ], "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "produces": [ "asset", "resource" ] }, { "id": "database_schema_inventory", "name": "Database Schema Inventory", "component_type": "dagster_component_templates.DatabaseSchemaInventoryComponent", "path": "assets/sources/database_schema_inventory", "category": "source", "icon": "ListTree", "description": "List every database object (tables/views/procedures/functions/sequences/triggers/scheduled jobs) in a source SQL DB as a DataFrame. Companion to database_replication for warehouse-migration planning. Supports postgres/mysql/mssql/oracle/db2/snowflake/redshift.", "tags": [ "source", "metadata", "inventory", "migration", "warehouse", "schema", "oracle", "db2" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/database_schema_inventory/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/database_schema_inventory/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/database_schema_inventory/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/database_schema_inventory/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/database_schema_inventory/requirements.txt", "dependencies": { "pip": [ "dagster", "pandas>=1.5.0", "sqlalchemy>=2.0.0" ] }, "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/warehouse_migration.md", "last_validated": "2026-05-15" }, "agent_hints": { "inputs": "None (root source) \u2014 introspects DB metadata via connection_env_var.", "outputs": "DataFrame with columns: object_type, schema_name, object_name, definition, row_count. One row per DB object.", "side_effects": "Read-only. Used for warehouse-migration scoping.", "anti_uses": "Not for data extraction (use database_query). Not for schema comparison across DBs (that's manual review of the inventory).", "requires_resources": [ "database_connection" ], "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "produces": [ "asset" ] }, { "id": "database_tables_migration", "name": "Database Tables Migration", "component_type": "dagster_component_templates.DatabaseTablesMigrationComponent", "path": "assets/ingestion/database_tables_migration", "category": "ingestion", "icon": "Table2", "description": "DDL-first warehouse migration: build portable CREATE TABLE statements from source INFORMATION_SCHEMA (types + PKs + FKs + NOT NULL + DEFAULT + CHECK + UNIQUE) and execute on target. Pre-flight warnings for non-enforcing targets (Snowflake/BigQuery/Redshift). Status DataFrame per table.", "tags": [ "ingestion", "migration", "ddl", "schema", "primary-key", "foreign-key", "warehouse", "status-report" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/database_tables_migration/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/database_tables_migration/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/database_tables_migration/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/database_tables_migration/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/database_tables_migration/requirements.txt", "dependencies": { "pip": [ "dagster", "pandas>=1.5.0", "sqlalchemy>=2.0.0", "tabulate>=0.10.0" ] }, "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/warehouse_migration.md", "last_validated": "2026-05-15" }, "agent_hints": { "inputs": "None (root) \u2014 copies table DDL from source to target DB.", "outputs": "DataFrame with per-table migration status (schema_name, table_name, target_table, status, ddl_preview).", "side_effects": "Creates tables on TARGET DB. Idempotent with drop_if_exists=true. Requires source + target database_connection.", "anti_uses": "For DATA copy use database_replication. For view migration use database_views_migration.", "requires_resources": [ "database_connection" ], "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "produces": [ "asset" ] }, { "id": "database_view_migration", "name": "Database View Migration", "component_type": "dagster_component_templates.DatabaseViewMigrationComponent", "path": "assets/ingestion/database_view_migration", "category": "ingestion", "icon": "Eye", "description": "Migrate a single SQL view from source to target with table-ref + function-name substitutions. Reads source DDL, rewrites refs, executes CREATE OR REPLACE VIEW on target. Composable \u2014 one YAML per view.", "tags": [ "ingestion", "migration", "views", "ddl", "warehouse" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/database_view_migration/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/database_view_migration/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/database_view_migration/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/database_view_migration/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/database_view_migration/requirements.txt", "dependencies": { "pip": [ "dagster", "sqlalchemy>=2.0.0" ] }, "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/warehouse_migration.md", "last_validated": "2026-05-15" }, "agent_hints": { "inputs": "None (root) \u2014 migrates a single view from source to target.", "outputs": "DataFrame with single-row status.", "side_effects": "CREATE OR REPLACE VIEW on target.", "requires_resources": [ "database_connection" ] }, "version": "1.0.0", "author": "Dagster Community", "produces": [ "asset" ] }, { "id": "database_views_migration", "name": "Database Views Migration", "component_type": "dagster_component_templates.DatabaseViewsMigrationComponent", "path": "assets/ingestion/database_views_migration", "category": "ingestion", "icon": "Layers", "description": "Bulk-migrate every view in a source schema to a target with shared substitutions. Emits a per-view status DataFrame (schema_name, view_name, status, error_message) for the migration completion report.", "tags": [ "ingestion", "migration", "views", "ddl", "bulk", "warehouse", "status-report" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/database_views_migration/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/database_views_migration/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/database_views_migration/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/database_views_migration/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/database_views_migration/requirements.txt", "dependencies": { "pip": [ "dagster", "pandas>=1.5.0", "sqlalchemy>=2.0.0", "tabulate>=0.10.0" ] }, "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/warehouse_migration.md", "last_validated": "2026-05-15" }, "agent_hints": { "inputs": "None (root) \u2014 bulk view migration.", "outputs": "DataFrame with per-view status.", "side_effects": "CREATE OR REPLACE VIEW for each. Requires source + target database_connection.", "requires_resources": [ "database_connection" ], "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "produces": [ "asset" ] }, { "id": "databricks_asset_bundle", "name": "Databricks Asset Bundle", "category": "integration", "description": "Resource for interacting with Databricks workspace.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/databricks_asset_bundle", "tags": [ "integration", "databricks", "asset", "bundle" ], "dependencies": { "pip": [ "databricks-sdk", "dagster", "pyyaml" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/databricks_asset_bundle/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/databricks_asset_bundle/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/databricks_asset_bundle/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/databricks_asset_bundle/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/databricks_asset_bundle/requirements.txt", "icon": "si:databricks", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Databricks", "produces": [ "multi_asset", "resource" ], "agent_hints": {}, "consumes": [ "resource:databricks" ] }, { "id": "databricks_genie_query", "name": "Databricks Genie Query", "category": "ai", "description": "NL \u2192 SQL \u2192 result via Databricks AI/BI Genie spaces. Single-question or per-row over an upstream DataFrame. Full Dagster pattern (partitions, freshness, retry, kinds).", "path": "assets/ai/databricks_genie_query", "tags": [ "ai", "databricks", "genie", "sql", "nl-to-sql" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/databricks_genie_query/schema.json", "component_type": "dagster_component_templates.DatabricksGenieQueryComponent", "icon": "si:databricks", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/databricks_genie_query/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/databricks_genie_query/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/databricks_genie_query/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/databricks_genie_query/requirements.txt", "validation": { "level": "code", "last_validated": "2026-06-04" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "requests", "pandas" ] }, "produces": [ "asset" ], "agent_hints": { "output_type": "pd.DataFrame" }, "consumes": [ "resource:databricks" ] }, { "id": "databricks_io_manager", "name": "Databricks IO Manager", "category": "io_manager", "description": "Register a Databricks IO manager that reads and writes DataFrames as Unity Catalog Delta tables via Databricks SQL", "version": "0.1.0", "author": "Dagster Labs", "path": "io_managers/databricks_io_manager", "tags": [ "io_manager", "databricks", "delta-lake", "unity-catalog", "spark" ], "dependencies": { "pip": [ "databricks-sql-connector>=3.0.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/databricks_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/databricks_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/databricks_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/databricks_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/databricks_io_manager/requirements.txt", "icon": "si:databricks", "x-dagster-provides": [ "io_manager" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Databricks", "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:databricks" ] }, { "id": "databricks_resource", "name": "Databricks Resource", "category": "resource", "description": "Register a Databricks workspace resource for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/databricks_resource", "tags": [ "resource", "databricks", "spark" ], "dependencies": { "pip": [ "dagster-databricks" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/databricks_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/databricks_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/databricks_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/databricks_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/databricks_resource/requirements.txt", "icon": "si:databricks", "x-dagster-provides": [ "databricks_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Databricks", "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:databricks" ] }, { "id": "databricks_table_observation_sensor", "name": "Databricks Table Observation Sensor", "category": "observation", "description": "Emit health observations for an external Databricks Delta table.", "version": "1.0.0", "author": "Dagster Community", "path": "observations/databricks_table_observation_sensor", "tags": [ "observation", "databricks", "table", "sensor" ], "dependencies": { "pip": [ "databricks-sql-connector>=3.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/databricks_table_observation_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/databricks_table_observation_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/databricks_table_observation_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/databricks_table_observation_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/databricks_table_observation_sensor/requirements.txt", "icon": "si:databricks", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Databricks", "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:databricks" ] }, { "id": "databricks_workspace", "name": "Databricks Workspace", "category": "integration", "description": "Component for importing Databricks workspace entities as Dagster assets.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/databricks_workspace", "tags": [ "integration", "databricks", "workspace" ], "dependencies": { "pip": [ "databricks-sdk", "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/databricks_workspace/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/databricks_workspace/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/databricks_workspace/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/databricks_workspace/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/databricks_workspace/requirements.txt", "icon": "si:databricks", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/databricks_workspace.md", "last_validated": "2026-05-11" }, "vendor": "Databricks", "produces": [ "multi_asset", "sensor" ], "agent_hints": {}, "consumes": [ "resource:databricks" ] }, { "id": "datadog_resource", "name": "Datadog Resource", "category": "resource", "description": "Register a dagster-datadog DatadogResource for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/datadog_resource", "tags": [ "resource", "datadog", "monitoring", "observability" ], "dependencies": { "pip": [ "dagster-datadog" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/datadog_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/datadog_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/datadog_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/datadog_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/datadog_resource/requirements.txt", "icon": "si:datadog", "x-dagster-provides": [ "datadog_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "dataform_repository_resource", "name": "Dataform Repository Resource", "category": "resource", "description": "Expose `dagster_dataform.DataformRepositoryResource` via YAML config.", "version": "1.0.0", "author": "Dagster Community", "path": "resources/dataform_repository_resource", "tags": [ "dataform-repository-resource", "resources" ], "dependencies": { "pip": [ "dagster-dataform", "google-cloud-dataform", "google-auth" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/dataform_repository_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/dataform_repository_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/dataform_repository_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/dataform_repository_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/dataform_repository_resource/requirements.txt", "validation": { "level": "code", "evidence": "", "last_validated": "2026-05-11" }, "produces": [ "asset", "asset_check", "resource" ], "agent_hints": {} }, { "id": "dataframe_describe", "name": "DataFrame Describe", "component_type": "dagster_component_templates.DataframeDescribeComponent", "path": "assets/transforms/dataframe_describe", "category": "transformation", "icon": "Activity", "description": "Profile every column in a DataFrame \u2014 pandas describe() exposed as an asset. Numeric columns get count/mean/std/min/quartiles/max; non-numeric get count/unique/top/freq.", "tags": [ "transformation", "describe", "profile", "statistics", "data-quality" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_describe/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_describe/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_describe/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_describe/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_describe/schema.json", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/transformations.md", "last_validated": "2026-05-15" }, "agent_hints": { "inputs": "Any DataFrame.", "outputs": "DataFrame with statistical summary per column (count, mean, std, min, quartiles, max for numeric; unique/top/freq for categorical).", "side_effects": "REDUCES rows to ~8 (summary stats). Column set becomes per-input-column stats.", "anti_uses": "Not for filtering (use filter). Not for group-by aggregation (use summarize). This is the pandas .describe() output as an asset.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "dataframe_extract_field", "name": "Dataframe Extract Field", "category": "transformation", "description": "Pluck one element + optional field out of a list/dict column.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/dataframe_extract_field", "tags": [ "dataframe-extract-field", "transforms" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_extract_field/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_extract_field/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_extract_field/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_extract_field/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_extract_field/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "DataFrame with a nested/dict column.", "outputs": "DataFrame + a NEW column containing the extracted field.", "side_effects": "Adds one column. Original nested column preserved.", "anti_uses": "For flattening ALL nested keys use dataframe_flatten_nested_columns. For array elements use array_exploder.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "dataframe_flatten_nested_columns", "name": "Dataframe Flatten Nested Columns", "category": "transformation", "description": "JSON-stringify dict / list values in selected DataFrame columns.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/dataframe_flatten_nested_columns", "tags": [ "dataframe-flatten-nested-columns", "transforms" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_flatten_nested_columns/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_flatten_nested_columns/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_flatten_nested_columns/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_flatten_nested_columns/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_flatten_nested_columns/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "DataFrame with columns containing dicts or lists (e.g. from JSON APIs).", "outputs": "DataFrame with nested columns expanded \u2014 dict keys become new columns (dot-notation for nesting).", "side_effects": "Column count grows significantly. Original nested column may be dropped or retained per config.", "anti_uses": "Config: columns (auto-detects nested dict cols if omitted), expand: true|false (default true \u2014 real json_normalize expand), separator: '.' or '_', strip_prefix: true|false (drop parent name), expand_arrays: true|false (also split lists-of-primitives into indexed cols \u2014 e.g. coordinates:[lon,lat,depth] \u2192 coordinates.0/.1/.2 or lon/lat/depth via array_label_map={coordinates:[lon,lat,depth]}). For flattening use this; for SINGLE-field extract use dataframe_extract_field; for row-per-element use array_exploder.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "dataframe_from_csv", "name": "DataFrame from CSV", "category": "source", "description": "Read a CSV file and output a DataFrame.", "path": "assets/sources/dataframe_from_csv", "tags": [ "source", "dataframe", "from", "csv" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_csv/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_csv/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_csv/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_csv/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_csv/requirements.txt", "icon": "Database", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/local_io.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "None (root source) \u2014 reads a CSV from URL or local path.", "outputs": "DataFrame with columns from the CSV header row.", "side_effects": "None on data (read-only).", "anti_uses": "For non-CSV tabular files (parquet/json/xlsx) or if you want auto-format detection, use file_ingestion instead.", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "dataframe_from_kusto", "name": "Azure Data Explorer Query", "category": "source", "description": "Run a KQL query against an Azure Data Explorer (ADX) cluster and materialize as a DataFrame asset.", "path": "assets/sources/dataframe_from_kusto", "tags": [ "source", "azure", "kusto", "data_explorer", "kql" ], "type": "dagster_component_templates.DataframeFromKustoComponent", "component_type": "dagster_component_templates.DataframeFromKustoComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_kusto/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_kusto/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_kusto/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_kusto/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_kusto/requirements.txt", "icon": "Search", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_data_explorer.md", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "azure-kusto-data" ] }, "agent_hints": { "inputs": "None (root source) \u2014 runs a KQL query against Azure Data Explorer.", "outputs": "DataFrame from KQL result.", "side_effects": "Requires azure_credentials.", "anti_uses": "For writing use dataframe_to_kusto. For SQL warehouses use dataframe_from_sql.", "requires_resources": [ "azure_credentials" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:kusto" ] }, { "id": "dataframe_from_prometheus", "name": "Prometheus PromQL Query", "category": "source", "description": "Run a PromQL query against any Prometheus-compatible server and materialize as a DataFrame asset.", "path": "assets/sources/dataframe_from_prometheus", "tags": [ "source", "prometheus", "metrics", "monitoring", "azure" ], "type": "dagster_component_templates.DataframeFromPrometheusComponent", "component_type": "dagster_component_templates.DataframeFromPrometheusComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_prometheus/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_prometheus/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_prometheus/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_prometheus/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_prometheus/requirements.txt", "icon": "LineChart", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/prometheus_demo.md", "last_validated": "2026-05-06" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "requests" ] }, "agent_hints": { "inputs": "None (root source) \u2014 runs a PromQL query.", "outputs": "DataFrame of time-series samples (metric_name, value, timestamp, labels).", "side_effects": "Requires prometheus_url (unauthenticated) or credentials.", "anti_uses": "For writing use dataframe_to_prometheus. Prefer VictoriaMetrics for high-cardinality (dataframe_from_kusto or vm asset).", "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:prometheus" ] }, { "id": "dataframe_from_sql", "name": "DataFrame from SQL", "category": "source", "description": "Run a SQL query and return results as a DataFrame.", "path": "assets/sources/dataframe_from_sql", "tags": [ "source", "dataframe", "from", "sql" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_sql/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_sql/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_sql/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_sql/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_sql/requirements.txt", "icon": "Database", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_synapse_serverless.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "None (root source) \u2014 runs SQL against a configured `connection_env_var` (SQLAlchemy URL).", "outputs": "DataFrame with columns from the query SELECT list.", "side_effects": "None on local data. Read-only.", "anti_uses": "For BigQuery specifically prefer bigquery_query_asset (typed integration). For DuckDB in-memory SQL over pandas inputs use sql_transform.", "requires_resources": [ "database_connection" ], "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "sqlalchemy" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "dataframe_from_table", "name": "DataFrame from Table", "category": "source", "description": "Read a database table and output a DataFrame.", "path": "assets/sources/dataframe_from_table", "tags": [ "source", "dataframe", "from", "table" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_table/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_table/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_table/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_table/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_table/requirements.txt", "icon": "Database", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_postgres.md", "last_validated": "2026-05-06" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "sqlalchemy" ] }, "agent_hints": { "inputs": "None (root source) \u2014 reads a full SQL table via SQLAlchemy URL.", "outputs": "DataFrame with all columns from the table.", "side_effects": "Read-only. Requires database_connection.", "anti_uses": "For custom SQL use dataframe_from_sql. For pushdown SQL over pandas inputs use sql_transform.", "requires_resources": [ "database_connection" ], "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ] }, { "id": "dataframe_from_yxdb", "name": "DataFrame from Alteryx .yxdb", "category": "source", "description": "Read an Alteryx native binary file (.yxdb) and materialize it as a pandas DataFrame asset. Wraps the import-yxdb PyPI package (whole-file \u2192 DataFrame) with a fallback to the lower-level yxdb row iterator. Pairs with the alteryx-to-dagster migrator (which auto-routes Alteryx Input Data tools pointing at .yxdb files to this component).", "path": "assets/sources/dataframe_from_yxdb", "tags": [ "source", "alteryx", "yxdb", "migration", "dataframe" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_yxdb/schema.json", "component_type": "dagster_component_templates.DataframeFromYxdbComponent", "icon": "Database", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_yxdb/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_yxdb/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_yxdb/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dataframe_from_yxdb/requirements.txt", "validation": { "level": "code", "last_validated": "2026-06-05" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "pandas", "yxdb", "import-yxdb" ] }, "produces": [ "asset" ], "agent_hints": { "output_type": "pd.DataFrame" } }, { "id": "dataframe_join", "name": "DataFrame Join", "category": "transformation", "description": "Join two DataFrame assets on common or specified columns.", "path": "assets/transforms/dataframe_join", "tags": [ "transformation", "dataframe", "join" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_join/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_join/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_join/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_join/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_join/requirements.txt", "icon": "Shuffle", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/adls_round_trip.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "TWO DataFrames \u2014 `left_asset_key` and `right_asset_key` referencing DIFFERENT prior assets.", "outputs": "Joined DataFrame with columns from both sides. Duplicate column names get `Right_` prefix.", "side_effects": "Row count changes per join type. left/right/inner/outer/cross behave per pandas.", "anti_uses": "NEVER join an asset with itself (left_asset_key == right_asset_key is rejected \u2014 degenerate self-join). For UNION (row stacking) use dataframe_union instead." }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "dataframe_to_adls", "name": "DataFrame to ADLS", "category": "sink", "description": "Write a DataFrame to Azure Data Lake Storage Gen2.", "path": "assets/sinks/dataframe_to_adls", "tags": [ "sink", "dataframe", "adls" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_adls/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_adls/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_adls/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_adls/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_adls/requirements.txt", "icon": "si:microsoftazure", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/adls_round_trip.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes to Azure Data Lake Storage).", "side_effects": "Writes to ADLS Gen2. Format per config (parquet/csv/json). Requires Azure credentials.", "anti_uses": "For AWS use dataframe_to_s3 (or a specific parquet variant). For local files use dataframe_to_parquet/csv/json.", "requires_resources": [ "azure_credentials" ], "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "adlfs", "pyarrow" ] }, "produces": [ "asset" ], "consumes": [ "resource:adls" ] }, { "id": "dataframe_to_avro", "name": "DataFrame to Avro", "category": "sink", "description": "Write a pandas DataFrame as Avro to a local path or fsspec URI (s3://, gs://, abfss://, gs://). Schema is inferred from pandas dtypes (nullable unions); pass explicit avro_schema to override. Companion to dataframe_to_parquet, but for Kafka/EH-ecosystem consumers expecting Avro.", "path": "assets/sinks/dataframe_to_avro", "tags": [ "sink", "dataframe", "avro", "fastavro", "fsspec", "streaming" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_avro/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_avro/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_avro/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_avro/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_avro/requirements.txt", "icon": "ArrowDownToLine", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/local_transforms.md", "last_validated": "2026-05-14" }, "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes Avro file).", "side_effects": "Writes to disk. Requires fastavro. Schema is inferred from DataFrame dtypes.", "anti_uses": "For parquet use dataframe_to_parquet. Avro is column-agnostic; downstream tools must have compatible schema handling.", "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "pandas", "fastavro", "fsspec" ] }, "produces": [ "asset" ] }, { "id": "dataframe_to_azure_table", "name": "DataFrame \u2192 Azure Tables", "category": "sink", "description": "Write DataFrame rows as entities to Azure Table Storage. NoSQL key-value store, way cheaper than Cosmos for simple structured data.", "path": "assets/sinks/dataframe_to_azure_table", "tags": [ "sink", "azure", "table_storage", "nosql", "dataframe" ], "type": "dagster_component_templates.DataframeToAzureTableComponent", "component_type": "dagster_component_templates.DataframeToAzureTableComponent", "icon": "Table", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_azure_table/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_azure_table/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_azure_table/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_azure_table/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_azure_table/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_tables.md", "last_validated": "2026-05-06" }, "vendor": "Microsoft", "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes to Azure Table Storage).", "side_effects": "Writes to Azure Table Storage. Requires azure_credentials. Mode / write-disposition per config.", "anti_uses": "For local files use dataframe_to_parquet/csv/json.", "requires_resources": [ "azure_credentials" ], "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "azure-data-tables", "azure-identity" ] }, "produces": [ "asset" ] }, { "id": "dataframe_to_bigquery", "name": "DataFrame to BigQuery", "category": "sink", "description": "Write a DataFrame to a Google BigQuery table.", "path": "assets/sinks/dataframe_to_bigquery", "tags": [ "sink", "dataframe", "bigquery" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_bigquery/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_bigquery/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_bigquery/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_bigquery/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_bigquery/requirements.txt", "icon": "si:googlebigquery", "validation": { "level": "live", "last_validated": "2026-05-11" }, "vendor": "Google", "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes to a BigQuery table).", "side_effects": "Writes to BigQuery. `write_disposition`: WRITE_TRUNCATE / WRITE_APPEND / WRITE_EMPTY. Requires GCP credentials.", "anti_uses": "For loading files from GCS to BigQuery use bigquery_load_from_gcs_asset. For reading FROM BQ use bigquery_query_asset.", "requires_resources": [ "bigquery_resource" ], "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "google-cloud-bigquery", "db-dtypes" ] }, "produces": [ "asset" ], "consumes": [ "resource:bigquery" ] }, { "id": "dataframe_to_clickhouse", "name": "DataFrame to ClickHouse", "category": "sink", "description": "Insert a Pandas DataFrame into ClickHouse via clickhouse-connect's client.insert_df. ~1M rows/sec per client over HTTP.", "path": "assets/sinks/dataframe_to_clickhouse", "tags": [ "sink", "clickhouse", "olap" ], "vendor": "ClickHouse", "dependencies": { "pip": [ "pandas>=2.0.0", "clickhouse-connect>=0.7.0" ] }, "version": "1.0.0", "author": "Dagster Community", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_clickhouse/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_clickhouse/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_clickhouse/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_clickhouse/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_clickhouse/requirements.txt", "validation": { "level": "live", "last_validated": "2026-05-28", "evidence": "examples/clickhouse.md \u2014 Docker container + Dagster scaffold validated end-to-end" }, "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes to a ClickHouse table).", "side_effects": "Writes via clickhouse-connect. Fast bulk insert.", "anti_uses": "For general SQL DB use dataframe_to_table. For Snowflake use dataframe_to_snowflake.", "requires_resources": [ "clickhouse_resource" ], "input_type": "pd.DataFrame", "output_type": null }, "produces": [ "asset" ], "consumes": [ "resource:clickhouse" ] }, { "id": "dataframe_to_csv", "name": "DataFrame to CSV", "category": "sink", "description": "Write a DataFrame to a CSV file.", "path": "assets/sinks/dataframe_to_csv", "tags": [ "sink", "dataframe", "csv" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_csv/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_csv/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_csv/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_csv/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_csv/requirements.txt", "icon": "ArrowDownToLine", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_redis.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes file to `file_path` and returns Output(value=None)).", "side_effects": "Writes to `file_path` on disk. For MULTIPLE CSV outputs, use MULTIPLE instances with different asset_name AND file_path values.", "anti_uses": "Not for reading (use file_ingestion). Not for parquet/JSON/excel (use dataframe_to_parquet/json/excel).", "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset" ] }, { "id": "dataframe_to_databricks", "name": "DataFrame to Databricks", "category": "sink", "description": "Write a DataFrame to a Databricks Delta Lake table.", "path": "assets/sinks/dataframe_to_databricks", "tags": [ "sink", "dataframe", "databricks" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_databricks/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_databricks/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_databricks/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_databricks/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_databricks/requirements.txt", "icon": "si:databricks", "validation": { "level": "live", "last_validated": "2026-05-11" }, "vendor": "Databricks", "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes to a Databricks table).", "side_effects": "Writes via databricks-sql-connector. Requires databricks_resource.", "anti_uses": "For writing to Delta on ADLS/S3 directly use dataframe_to_delta_table. For Snowflake use dataframe_to_snowflake.", "requires_resources": [ "databricks_resource" ], "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "databricks-sql-connector" ] }, "produces": [ "asset" ], "consumes": [ "resource:databricks" ] }, { "id": "dataframe_to_delta_table", "name": "Dataframe \u2192 Delta Table", "category": "sink", "description": "Write a pandas DataFrame to an EXISTING Delta Lake table (append / overwrite / merge). Uses delta-rs \u2014 no Spark / JVM. For cross-engine Delta scenarios on S3 / ADLS / GCS / Unity Catalog.", "path": "assets/sinks/dataframe_to_delta_table", "tags": [ "sink", "delta", "delta-lake", "lakehouse", "delta-rs", "unity-catalog", "external-table" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_delta_table/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_delta_table/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_delta_table/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_delta_table/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_delta_table/requirements.txt", "icon": "ArrowUpRight", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/lakehouse_local.md", "last_validated": "2026-05-14" }, "vendor": "Databricks", "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes to a Delta Lake table).", "side_effects": "Writes to Delta on ADLS/S3/local. Mode: append/overwrite/merge. Requires deltalake or Spark.", "anti_uses": "For Iceberg use dataframe_to_iceberg_table. For Databricks specifically use dataframe_to_databricks (typed).", "requires_resources": [ "storage_resource" ] }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "deltalake", "pyarrow", "pandas" ] }, "produces": [ "asset" ], "consumes": [ "resource:delta_lake" ] }, { "id": "dataframe_to_doris", "name": "DataFrame to Apache Doris", "category": "sink", "description": "Bulk-ingest a Pandas DataFrame into Apache Doris via Stream Load (HTTP PUT). Production high-throughput path \u2014 100k-1M rows/sec per FE.", "path": "assets/sinks/dataframe_to_doris", "tags": [ "sink", "doris", "olap", "stream-load" ], "vendor": "Apache Doris", "dependencies": { "pip": [ "pandas>=2.0.0", "requests>=2.28.0" ] }, "version": "1.0.0", "author": "Dagster Community", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_doris/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_doris/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_doris/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_doris/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_doris/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-28", "evidence": "build_defs + Pydantic instantiation pass; awaiting customer pilot for live" }, "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes to Apache Doris).", "side_effects": "Writes to Apache Doris. Requires doris_resource. Mode / write-disposition per config.", "anti_uses": "For local files use dataframe_to_parquet/csv/json.", "requires_resources": [ "doris_resource" ], "input_type": "pd.DataFrame", "output_type": null }, "produces": [ "asset" ], "consumes": [ "resource:doris" ] }, { "id": "dataframe_to_dynatrace_events", "name": "DataFrame \u2192 Dynatrace Events", "category": "sink", "description": "Push DataFrame rows as Dynatrace events. Use for batch-job markers (deployments, ETL completions, anomalies).", "path": "assets/sinks/dataframe_to_dynatrace_events", "tags": [ "sink", "dynatrace", "events", "observability", "dataframe" ], "type": "dagster_component_templates.DataframeToDynatraceEventsComponent", "component_type": "dagster_component_templates.DataframeToDynatraceEventsComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_dynatrace_events/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_dynatrace_events/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_dynatrace_events/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_dynatrace_events/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_dynatrace_events/requirements.txt", "icon": "Upload", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/newrelic_dynatrace.md", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "DataFrame of events.", "outputs": "None (sink \u2014 POSTs to Dynatrace Events API).", "side_effects": "Requires dynatrace_api_token.", "requires_resources": [ "dynatrace_resource" ], "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "requests" ] }, "produces": [ "asset" ], "consumes": [ "resource:dynatrace" ] }, { "id": "dataframe_to_eventhub", "name": "DataFrame to Azure Event Hubs", "category": "sink", "description": "Send each DataFrame row to an Azure Event Hub as a JSON event. Composes with synthetic_data_generator to inject test events into a queue without writing custom asset code.", "path": "assets/sinks/dataframe_to_eventhub", "tags": [ "sink", "dataframe", "azure", "eventhubs", "queue", "messaging" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_eventhub/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_eventhub/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_eventhub/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_eventhub/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_eventhub/requirements.txt", "icon": "si:azure", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_eventhubs.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame of events.", "outputs": "None (sink \u2014 publishes to Azure Event Hubs).", "side_effects": "One event per row. Requires azure_credentials + eventhub name.", "requires_resources": [ "azure_credentials" ], "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "azure-eventhub" ] }, "produces": [ "asset" ], "consumes": [ "resource:eventhub" ] }, { "id": "dataframe_to_excel", "name": "DataFrame to Excel", "category": "sink", "description": "Write a DataFrame to an Excel (.xlsx) file.", "path": "assets/sinks/dataframe_to_excel", "tags": [ "sink", "dataframe", "excel" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_excel/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_excel/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_excel/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_excel/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_excel/requirements.txt", "icon": "ArrowDownToLine", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/spacex.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "Any DataFrame.", "outputs": "None (sink \u2014 writes an Excel workbook to `file_path`).", "side_effects": "Writes to disk. Requires openpyxl. Slow for large frames \u2014 prefer CSV or parquet for pipelines.", "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "openpyxl" ] }, "produces": [ "asset" ] }, { "id": "dataframe_to_fabric_lakehouse", "name": "DataFrame \u2192 Fabric Lakehouse", "category": "sink", "description": "Write a DataFrame to a Microsoft Fabric Lakehouse table as Delta on OneLake. Auto-registers in the Fabric SQL endpoint.", "path": "assets/sinks/dataframe_to_fabric_lakehouse", "tags": [ "sink", "azure", "fabric", "onelake", "delta", "dataframe" ], "type": "dagster_component_templates.DataframeToFabricLakehouseComponent", "component_type": "dagster_component_templates.DataframeToFabricLakehouseComponent", "icon": "si:microsoftazure", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_fabric_lakehouse/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_fabric_lakehouse/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_fabric_lakehouse/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_fabric_lakehouse/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_fabric_lakehouse/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/fabric_full_stack.md", "last_validated": "2026-05-11" }, "vendor": "Microsoft", "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes to Microsoft Fabric Lakehouse).", "side_effects": "Writes to Microsoft Fabric Lakehouse. Requires azure_credentials. Mode / write-disposition per config.", "anti_uses": "For local files use dataframe_to_parquet/csv/json.", "requires_resources": [ "azure_credentials" ], "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "deltalake", "azure-identity" ] }, "produces": [ "asset" ], "consumes": [ "resource:fabric_lakehouse" ] }, { "id": "dataframe_to_gcs", "name": "DataFrame to GCS", "category": "sink", "description": "Write a DataFrame to Google Cloud Storage as Parquet, CSV, or JSON.", "path": "assets/sinks/dataframe_to_gcs", "tags": [ "sink", "dataframe", "gcs" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_gcs/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_gcs/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_gcs/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_gcs/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_gcs/requirements.txt", "icon": "si:googlecloud", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/google_calendar.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes to GCS at gs://bucket/key).", "side_effects": "Writes to GCS. Format per config. Requires GCP credentials.", "anti_uses": "For BigQuery table writes use dataframe_to_bigquery. For local files use dataframe_to_parquet/csv/json.", "requires_resources": [ "gcp_credentials" ], "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "gcsfs", "pyarrow" ] }, "produces": [ "asset" ], "consumes": [ "resource:gcs" ] }, { "id": "dataframe_to_iceberg_table", "name": "Dataframe \u2192 Iceberg Table", "category": "sink", "description": "Write a pandas DataFrame to an EXISTING Iceberg table (append or overwrite). For Iceberg tables shared with other engines \u2014 Snowflake, Trino, Spark, Flink, Databricks.", "path": "assets/sinks/dataframe_to_iceberg_table", "tags": [ "sink", "iceberg", "lakehouse", "pyiceberg", "external-table" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_iceberg_table/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_iceberg_table/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_iceberg_table/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_iceberg_table/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_iceberg_table/requirements.txt", "icon": "ArrowUpRight", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/lakehouse_local.md", "last_validated": "2026-05-14" }, "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes to an Iceberg table).", "side_effects": "Writes to Iceberg. Requires pyiceberg + configured catalog.", "anti_uses": "For Delta Lake use dataframe_to_delta_table. For reading FROM Iceberg use iceberg_ingestion.", "requires_resources": [ "iceberg_catalog" ] }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "pyiceberg", "pyarrow", "pandas" ] }, "produces": [ "asset" ], "consumes": [ "resource:iceberg" ] }, { "id": "dataframe_to_influxdb", "name": "DataFrame to InfluxDB", "category": "sink", "description": "Bulk-write a Pandas DataFrame to InfluxDB 2.x / 3.x as line-protocol points.", "path": "assets/sinks/dataframe_to_influxdb", "tags": [ "sink", "influxdb", "timeseries" ], "vendor": "InfluxDB", "dependencies": { "pip": [ "pandas>=2.0.0", "influxdb-client>=1.40.0" ] }, "version": "1.0.0", "author": "Dagster Community", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_influxdb/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_influxdb/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_influxdb/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_influxdb/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_influxdb/requirements.txt", "validation": { "level": "live", "last_validated": "2026-05-27", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/influxdb.md" }, "agent_hints": { "inputs": "DataFrame with time + tag + field columns.", "outputs": "None (sink \u2014 writes time-series points to InfluxDB).", "side_effects": "Requires influxdb_resource. Line-protocol write.", "anti_uses": "For Prometheus use dataframe_to_prometheus. For general time-series analytics use dataframe_to_snowflake.", "requires_resources": [ "influxdb_resource" ], "input_type": "pd.DataFrame", "output_type": null }, "produces": [ "asset" ], "consumes": [ "resource:influxdb" ] }, { "id": "dataframe_to_json", "name": "DataFrame to JSON", "category": "sink", "description": "Write a DataFrame to a JSON or JSON Lines file.", "path": "assets/sinks/dataframe_to_json", "tags": [ "sink", "dataframe", "json" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_json/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_json/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_json/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_json/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_json/requirements.txt", "icon": "ArrowDownToLine", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/books_scraper.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "Any DataFrame.", "outputs": "None (sink \u2014 writes JSON file to `file_path`).", "side_effects": "Writes to disk. `orient` controls JSON shape (records|split|table|columns|index).", "anti_uses": "For CSV/parquet output use respective components. Very large frames should prefer parquet.", "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset" ] }, { "id": "dataframe_to_kusto", "name": "DataFrame \u2192 Azure Data Explorer", "category": "sink", "description": "Push a DataFrame to a Kusto table on an ADX cluster. Queued (durable) or streaming ingestion.", "path": "assets/sinks/dataframe_to_kusto", "tags": [ "sink", "azure", "kusto", "data_explorer", "dataframe" ], "type": "dagster_component_templates.DataframeToKustoComponent", "component_type": "dagster_component_templates.DataframeToKustoComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_kusto/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_kusto/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_kusto/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_kusto/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_kusto/requirements.txt", "icon": "Upload", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_data_explorer.md", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes to Azure Data Explorer (Kusto)).", "side_effects": "Writes to Azure Data Explorer (Kusto). Requires azure_credentials. Mode / write-disposition per config.", "anti_uses": "For local files use dataframe_to_parquet/csv/json.", "requires_resources": [ "azure_credentials" ], "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "azure-kusto-data", "azure-kusto-ingest" ] }, "produces": [ "asset" ], "consumes": [ "resource:kusto" ] }, { "id": "dataframe_to_newrelic_logs", "name": "DataFrame \u2192 New Relic Logs", "category": "sink", "description": "Push DataFrame rows as log events to New Relic. Each row becomes one log entry.", "path": "assets/sinks/dataframe_to_newrelic_logs", "tags": [ "sink", "newrelic", "logs", "observability", "dataframe" ], "type": "dagster_component_templates.DataframeToNewRelicLogsComponent", "component_type": "dagster_component_templates.DataframeToNewRelicLogsComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_newrelic_logs/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_newrelic_logs/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_newrelic_logs/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_newrelic_logs/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_newrelic_logs/requirements.txt", "icon": "Upload", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/newrelic_dynatrace.md", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "DataFrame of log events.", "outputs": "None (sink \u2014 POSTs to New Relic Log API).", "side_effects": "Requires newrelic_license_key. Rate-limited.", "requires_resources": [ "newrelic_resource" ], "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "requests" ] }, "produces": [ "asset" ], "consumes": [ "resource:newrelic" ] }, { "id": "dataframe_to_odata", "name": "Dataframe \u2192 OData", "category": "sink", "description": "Sink \u2014 write a pandas DataFrame to an OData v2/v4 entity set via POST / PATCH / DELETE.", "path": "assets/sinks/dataframe_to_odata", "tags": [ "sink", "odata", "sap", "s4hana", "dynamics365", "msgraph" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_odata/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_odata/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_odata/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_odata/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_odata/requirements.txt", "icon": "ArrowUpRight", "validation": { "level": "code", "last_validated": "2026-05-13" }, "agent_hints": { "inputs": "DataFrame with columns matching the target OData entity set schema.", "outputs": "None (sink \u2014 POSTs entities to an OData endpoint).", "side_effects": "One entity per row. Requires OData endpoint + auth.", "anti_uses": "For reading FROM OData use odata_ingestion." }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "requests", "pandas" ] }, "produces": [ "asset" ] }, { "id": "dataframe_to_otlp_logs", "name": "DataFrame \u2192 OTLP Logs", "category": "sink", "description": "Push DataFrame rows as OpenTelemetry log records via OTLP/HTTP. Same universal-backend story as the metrics sink.", "path": "assets/sinks/dataframe_to_otlp_logs", "tags": [ "sink", "opentelemetry", "otel", "logs", "observability" ], "type": "dagster_component_templates.DataframeToOtlpLogsComponent", "component_type": "dagster_component_templates.DataframeToOtlpLogsComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_otlp_logs/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_otlp_logs/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_otlp_logs/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_otlp_logs/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_otlp_logs/requirements.txt", "icon": "FileText", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/opentelemetry_demo.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame of log records.", "outputs": "None (sink \u2014 sends via OpenTelemetry OTLP protocol to a collector).", "side_effects": "Requires otlp_endpoint. Vendor-agnostic (works with any OTLP-compatible backend).", "anti_uses": "For metrics use dataframe_to_otlp_metrics. For traces use dataframe_to_otlp_traces.", "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "opentelemetry-sdk", "opentelemetry-exporter-otlp-proto-http" ] }, "produces": [ "asset" ], "consumes": [ "resource:otlp" ] }, { "id": "dataframe_to_otlp_metrics", "name": "DataFrame \u2192 OTLP Metrics", "category": "sink", "description": "Push DataFrame rows as OpenTelemetry metrics via OTLP/HTTP. ONE sink, ANY backend (OTel collector, Honeycomb, Lightstep, Datadog, Splunk Observability, Grafana Cloud, etc.).", "path": "assets/sinks/dataframe_to_otlp_metrics", "tags": [ "sink", "opentelemetry", "otel", "metrics", "observability" ], "type": "dagster_component_templates.DataframeToOtlpMetricsComponent", "component_type": "dagster_component_templates.DataframeToOtlpMetricsComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_otlp_metrics/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_otlp_metrics/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_otlp_metrics/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_otlp_metrics/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_otlp_metrics/requirements.txt", "icon": "LineChart", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/opentelemetry_demo.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame of metric samples (metric_name, value, timestamp, labels).", "outputs": "None (sink \u2014 sends metrics via OTLP).", "side_effects": "Requires otlp_endpoint. Vendor-agnostic.", "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "opentelemetry-sdk", "opentelemetry-exporter-otlp-proto-http" ] }, "produces": [ "asset" ], "consumes": [ "resource:otlp" ] }, { "id": "dataframe_to_otlp_traces", "name": "DataFrame \u2192 OTLP Traces", "category": "sink", "description": "Push DataFrame rows as OpenTelemetry spans via OTLP/HTTP. Emit synthetic spans for batch jobs / ETL stages so they show up in tracing UIs alongside live application traces.", "path": "assets/sinks/dataframe_to_otlp_traces", "tags": [ "sink", "opentelemetry", "otel", "traces", "tracing", "observability" ], "type": "dagster_component_templates.DataframeToOtlpTracesComponent", "component_type": "dagster_component_templates.DataframeToOtlpTracesComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_otlp_traces/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_otlp_traces/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_otlp_traces/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_otlp_traces/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_otlp_traces/requirements.txt", "icon": "GitBranch", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/opentelemetry_demo.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame of span records.", "outputs": "None (sink \u2014 sends traces via OTLP).", "side_effects": "Requires otlp_endpoint. Vendor-agnostic.", "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "opentelemetry-sdk", "opentelemetry-exporter-otlp-proto-http" ] }, "produces": [ "asset" ], "consumes": [ "resource:otlp" ] }, { "id": "dataframe_to_parquet", "name": "DataFrame to Parquet", "category": "sink", "description": "Write a DataFrame to a Parquet file (local, S3, or GCS).", "path": "assets/sinks/dataframe_to_parquet", "tags": [ "sink", "dataframe", "parquet" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_parquet/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_parquet/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_parquet/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_parquet/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_parquet/requirements.txt", "icon": "ArrowDownToLine", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/dagster_plus_security_lake.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "Any DataFrame.", "outputs": "None (sink \u2014 writes parquet file to `file_path`).", "side_effects": "Writes to disk. For MULTIPLE parquet outputs, use MULTIPLE instances with different asset_name AND file_path.", "anti_uses": "For CSV output use dataframe_to_csv. Requires pyarrow (or fastparquet).", "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "pyarrow" ] }, "produces": [ "asset" ] }, { "id": "dataframe_to_prometheus", "name": "DataFrame \u2192 Prometheus", "category": "sink", "description": "Push DataFrame rows as Prometheus metrics via a pushgateway.", "path": "assets/sinks/dataframe_to_prometheus", "tags": [ "sink", "prometheus", "metrics", "monitoring", "dataframe" ], "type": "dagster_component_templates.DataframeToPrometheusComponent", "component_type": "dagster_component_templates.DataframeToPrometheusComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_prometheus/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_prometheus/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_prometheus/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_prometheus/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_prometheus/requirements.txt", "icon": "Upload", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/prometheus_demo.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with metric columns + timestamp column.", "outputs": "None (sink \u2014 pushes metrics to Prometheus).", "side_effects": "Requires pushgateway URL. Metric names normalized per Prometheus conventions.", "anti_uses": "For querying Prometheus use dataframe_from_prometheus. For high-cardinality events use dataframe_to_influxdb.", "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "prometheus_client" ] }, "produces": [ "asset" ], "consumes": [ "resource:prometheus" ] }, { "id": "dataframe_to_redshift", "name": "DataFrame to Redshift", "category": "sink", "description": "Write a DataFrame to an Amazon Redshift table.", "path": "assets/sinks/dataframe_to_redshift", "tags": [ "sink", "dataframe", "redshift" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_redshift/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_redshift/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_redshift/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_redshift/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_redshift/requirements.txt", "icon": "si:amazonredshift", "validation": { "level": "live", "last_validated": "2026-05-11" }, "vendor": "AWS", "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes to a Redshift table).", "side_effects": "Writes to Redshift via COPY (fast, batch). Requires redshift_resource + S3 staging.", "anti_uses": "For BigQuery use dataframe_to_bigquery. For Snowflake use dataframe_to_snowflake.", "requires_resources": [ "redshift_resource" ], "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "sqlalchemy", "psycopg2-binary" ] }, "produces": [ "asset" ], "consumes": [ "resource:redshift" ] }, { "id": "dataframe_to_s3", "name": "DataFrame to S3", "category": "sink", "description": "Write a DataFrame to Amazon S3 as Parquet, CSV, or JSON.", "path": "assets/sinks/dataframe_to_s3", "tags": [ "sink", "dataframe" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_s3/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_s3/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_s3/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_s3/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_s3/requirements.txt", "icon": "ArrowDownToLine", "validation": { "level": "live", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes to S3 at s3://bucket/key).", "side_effects": "Writes to S3. Format per config (parquet/csv/json). Requires AWS credentials.", "anti_uses": "For local files use dataframe_to_parquet/csv/json. For ADLS use dataframe_to_adls.", "requires_resources": [ "aws_credentials" ], "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "boto3", "s3fs", "pyarrow" ] }, "produces": [ "asset" ], "consumes": [ "resource:s3" ] }, { "id": "dataframe_to_security_lake", "name": "DataframeToSecurityLakeComponent", "category": "sink", "description": "Write an OCSF DataFrame to AWS Security Lake \u2014 Parquet with snappy compression and the canonical region/accountId/eventDay partition layout.", "version": "1.0.0", "author": "Dagster Community", "path": "sinks/dataframe_to_security_lake", "tags": [ "aws", "security-lake", "ocsf", "parquet", "sink" ], "dependencies": { "pip": [ "pandas", "boto3", "pyarrow" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/dataframe_to_security_lake/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/dataframe_to_security_lake/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/dataframe_to_security_lake/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/dataframe_to_security_lake/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sinks/dataframe_to_security_lake/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/dagster_plus_security_lake.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame of security events (OCSF schema).", "outputs": "None (sink \u2014 writes to AWS Security Lake).", "side_effects": "Requires aws_credentials + Security Lake configured. Data lands in OCSF-normalized form.", "anti_uses": "For SIEM forwarding use audit_logs_to_. For generic S3 use dataframe_to_s3.", "requires_resources": [ "aws_credentials" ] }, "produces": [ "asset" ] }, { "name": "DataFrame to Sentry", "category": "sink", "description": "Send each row of an upstream DataFrame to Sentry as an event via the official sentry-sdk. Supports per-row level, tags (searchable), extras (context), and fingerprint (grouping). Killer pattern: pipe Dagster+ run-failure events into Sentry so on-call sees data-pipeline health alongside application errors.", "path": "assets/sinks/dataframe_to_sentry", "tags": [ "sink", "sentry", "observability", "alerts", "saas" ], "icon": "AlertCircle", "type": "dagster_community_components.DataframeToSentryComponent", "component_type": "dagster_community_components.DataframeToSentryComponent", "dependencies": { "pip": [ "pandas", "sentry-sdk" ] }, "agent_hints": { "inputs": "DataFrame with a message column + optional tag/extra/fingerprint/level columns.", "outputs": "None (sink \u2014 sends one Sentry event per row, returns Output(value=None)).", "side_effects": "Sends N events to Sentry via sentry-sdk. Requires SENTRY_DSN env var. environment + release fields apply to every event. Sync-flushes on completion.", "anti_uses": "Not for INGESTING FROM Sentry (use sentry_issues_ingestion). For high-volume events > 1K/run, watch Sentry's ingestion quota. For scheduled cron check-ins use Sentry Cron Monitoring API (separate).", "requires_pip": [ "sentry_sdk" ], "requires_resources": [ "sentry_dsn" ], "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "validation": { "level": "code", "last_validated": "2026-07-08" }, "id": "dataframe_to_sentry", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_sentry/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_sentry/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_sentry/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_sentry/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_sentry/requirements.txt", "produces": [ "asset" ], "consumes": [ "resource:sentry" ] }, { "id": "dataframe_to_servicebus", "name": "DataFrame \u2192 Azure Service Bus", "category": "sink", "description": "Send each DataFrame row to an Azure Service Bus queue or topic as a JSON message. Mirrors dataframe_to_eventhub for SB workloads \u2014 completes the registry's existing servicebus_monitor + servicebus_to_database_asset (consumer) pair.", "path": "assets/sinks/dataframe_to_servicebus", "tags": [ "sink", "azure", "servicebus", "queue", "messaging", "dataframe" ], "type": "dagster_component_templates.DataframeToServiceBusComponent", "component_type": "dagster_component_templates.DataframeToServiceBusComponent", "icon": "MessageSquare", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_servicebus/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_servicebus/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_servicebus/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_servicebus/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_servicebus/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_servicebus.md", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "DataFrame of messages.", "outputs": "None (sink \u2014 publishes to Azure Service Bus queue/topic).", "side_effects": "One message per row.", "requires_resources": [ "azure_credentials" ], "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "azure-servicebus" ] }, "produces": [ "asset" ], "consumes": [ "resource:servicebus" ] }, { "id": "dataframe_to_snowflake", "name": "DataFrame to Snowflake", "category": "sink", "description": "Write a DataFrame to a Snowflake table.", "path": "assets/sinks/dataframe_to_snowflake", "tags": [ "sink", "dataframe", "snowflake" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_snowflake/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_snowflake/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_snowflake/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_snowflake/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_snowflake/requirements.txt", "icon": "si:snowflake", "validation": { "level": "live", "last_validated": "2026-05-11" }, "vendor": "Snowflake", "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes to a Snowflake table).", "side_effects": "Writes to Snowflake. `if_exists` controls behavior (replace/append/upsert). Requires snowflake_resource.", "anti_uses": "For reading FROM Snowflake use dataframe_from_sql or a snowflake source component. For BigQuery use dataframe_to_bigquery. Not for local file output.", "requires_resources": [ "snowflake_resource" ], "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "snowflake-connector-python[pandas]" ] }, "produces": [ "asset" ], "consumes": [ "resource:snowflake" ] }, { "id": "dataframe_to_snowflake_bulk", "name": "DataFrame to Snowflake (Bulk)", "component_type": "dagster_component_templates.DataframeToSnowflakeBulkComponent", "path": "assets/sinks/dataframe_to_snowflake_bulk", "category": "sink", "icon": "si:snowflake", "description": "Memory-efficient bulk load of a pandas DataFrame to Snowflake via chunked parquet \u2192 PUT to internal stage \u2192 COPY INTO. For medium-large DataFrames (1M\u201350M rows) where write_pandas's internal .copy() would double memory. Supports replace / append / merge (upsert by primary_key).", "tags": [ "sink", "dataframe", "snowflake", "bulk", "stage", "copy-into", "warehouse" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_snowflake_bulk/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_snowflake_bulk/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_snowflake_bulk/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_snowflake_bulk/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_snowflake_bulk/requirements.txt", "dependencies": { "pip": [ "dagster", "pandas>=1.5.0", "pyarrow>=11.0.0", "snowflake-connector-python[pandas]>=3.0.0" ] }, "validation": { "level": "code" }, "vendor": "Snowflake", "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes to a Snowflake table via bulk COPY).", "side_effects": "Faster than dataframe_to_snowflake for large volumes. Requires stage + snowflake_resource.", "anti_uses": "For small tables (<100K rows) use dataframe_to_snowflake (simpler).", "requires_resources": [ "snowflake_resource" ], "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "produces": [ "asset" ], "consumes": [ "resource:snowflake" ] }, { "id": "dataframe_to_starrocks", "name": "DataFrame to StarRocks", "category": "sink", "description": "Bulk-ingest a Pandas DataFrame into StarRocks via Stream Load. Mirror of dataframe_to_doris.", "path": "assets/sinks/dataframe_to_starrocks", "tags": [ "sink", "starrocks", "olap", "stream-load" ], "vendor": "StarRocks", "dependencies": { "pip": [ "pandas>=2.0.0", "requests>=2.28.0" ] }, "version": "1.0.0", "author": "Dagster Community", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_starrocks/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_starrocks/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_starrocks/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_starrocks/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_starrocks/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-28", "evidence": "build_defs + Pydantic instantiation pass; awaiting customer pilot for live" }, "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes to StarRocks).", "side_effects": "Writes to StarRocks. Requires starrocks_resource. Mode / write-disposition per config.", "anti_uses": "For local files use dataframe_to_parquet/csv/json.", "requires_resources": [ "starrocks_resource" ], "input_type": "pd.DataFrame", "output_type": null }, "produces": [ "asset" ], "consumes": [ "resource:starrocks" ] }, { "id": "dataframe_to_table", "name": "DataFrame to Table", "category": "sink", "description": "Write a DataFrame to a database table (terminal sink).", "path": "assets/sinks/dataframe_to_table", "tags": [ "sink", "dataframe", "table" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_table/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_table/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_table/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_table/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_table/requirements.txt", "icon": "ArrowDownToLine", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_mysql.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes to a SQL table via SQLAlchemy URL).", "side_effects": "Writes to the target DB. `if_exists`: replace/append/fail. Requires connection_env_var.", "anti_uses": "For typed vendor sinks (Snowflake/BigQuery/Databricks) prefer the vendor-specific components \u2014 better dtype handling and faster.", "requires_resources": [ "database_connection" ], "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "sqlalchemy" ] }, "produces": [ "asset" ] }, { "id": "dataframe_to_victoriametrics", "name": "DataFrame to VictoriaMetrics", "category": "sink", "description": "Bulk-ingest a Pandas DataFrame as VictoriaMetrics time-series via /api/v1/import/prometheus.", "path": "assets/sinks/dataframe_to_victoriametrics", "tags": [ "sink", "victoriametrics", "timeseries", "prometheus" ], "vendor": "VictoriaMetrics", "dependencies": { "pip": [ "pandas>=2.0.0", "requests>=2.28.0" ] }, "version": "1.0.0", "author": "Dagster Community", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_victoriametrics/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_victoriametrics/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_victoriametrics/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_victoriametrics/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dataframe_to_victoriametrics/requirements.txt", "validation": { "level": "live", "last_validated": "2026-05-27", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/victoriametrics.md" }, "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes to VictoriaMetrics).", "side_effects": "Writes to VictoriaMetrics. Requires victoriametrics_resource. Mode / write-disposition per config.", "anti_uses": "For local files use dataframe_to_parquet/csv/json.", "requires_resources": [ "victoriametrics_resource" ], "input_type": "pd.DataFrame", "output_type": null }, "produces": [ "asset" ], "consumes": [ "resource:victoriametrics" ] }, { "id": "dataframe_transformer", "name": "DataFrame Transformer", "category": "transformation", "description": "Component for transforming DataFrames from upstream assets.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/dataframe_transformer", "tags": [ "transformation", "dataframe", "transformer" ], "dependencies": { "pip": [ "pandas>=2.0.0", "pyarrow>=10.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_transformer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_transformer/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_transformer/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_transformer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_transformer/requirements.txt", "icon": "Shuffle", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/transformations.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": {} }, { "id": "dataframe_union", "name": "DataFrame Union", "category": "transformation", "description": "Stack multiple DataFrame assets vertically (like SQL UNION ALL).", "path": "assets/transforms/dataframe_union", "tags": [ "transformation", "dataframe", "union" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_union/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_union/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_union/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_union/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dataframe_union/requirements.txt", "icon": "Shuffle", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/regional_orders.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "Multiple DataFrames via `additional_asset_keys` (list of prior asset names).", "outputs": "Stacked DataFrame \u2014 rows from all inputs concatenated. Column set is union of all inputs (missing columns filled with NaN).", "side_effects": "Row count = sum of input rows. Column set may grow if inputs have different columns.", "anti_uses": "For JOIN (matching rows by key) use dataframe_join instead. All inputs should have compatible schemas \u2014 mismatched dtypes cause silent object-dtype columns." }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "dataiku_asset", "name": "Dataiku Asset", "category": "analytics", "description": "Dataiku DSS scenario component \u2014 one Dagster asset per Dataiku scenario.", "path": "assets/analytics/dataiku_asset", "tags": [ "analytics", "dataiku", "asset" ], "icon": "BarChart2", "type": "dagster_component_templates.DataikuAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/dataiku_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/dataiku_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/dataiku_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/dataiku_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/dataiku_asset/requirements.txt", "component_type": "dagster_component_templates.DataikuAssetComponent", "validation": { "level": "code", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "requests" ] }, "produces": [ "multi_asset" ], "stateful": true, "agent_hints": {} }, { "id": "dataplex_dq_scan_results_asset", "name": "Dataplex Dq Scan Results Asset", "category": "source", "description": "Pull Dataplex Data-Quality scan results into a DataFrame.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/source/dataplex_dq_scan_results_asset", "tags": [ "dataplex-dq-scan-results-asset", "source" ], "dependencies": { "pip": [ "google-cloud-dataplex", "google-auth", "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/dataplex_dq_scan_results_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/dataplex_dq_scan_results_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/dataplex_dq_scan_results_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/dataplex_dq_scan_results_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/dataplex_dq_scan_results_asset/requirements.txt", "validation": { "level": "code", "evidence": "", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": { "output_type": "pd.DataFrame" }, "consumes": [ "resource:dataplex" ] }, { "id": "datetime_parser", "name": "DateTime Parser", "category": "transformation", "description": "Parse, convert, or extract components from datetime columns.", "path": "assets/transforms/datetime_parser", "tags": [ "transformation", "datetime", "parser" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/datetime_parser/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/datetime_parser/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/datetime_parser/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/datetime_parser/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/datetime_parser/requirements.txt", "icon": "Shuffle", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/cars_sql.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with a string column containing datetime-like values.", "outputs": "Same DataFrame with the parsed column converted to datetime dtype (or a NEW datetime column added).", "side_effects": "May modify existing column dtype OR add new column, per config. Failed parses become NaT.", "anti_uses": "For type coercion of multiple columns use type_coercer. Not for date arithmetic (use formula).", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "db2_resource", "name": "Db2ResourceComponent", "path": "resources/db2_resource", "category": "resource", "author": "Dagster Community", "version": "1.0.0", "description": "IBM Db2 Dagster resource \u2014 connection string + connection factory shared across assets. Works against Db2 LUW, Db2 Community Edition, Db2 on Cloud, and Db2 Warehouse. Uses ibm_db_sa SQLAlchemy dialect.", "tags": [ "db2", "ibm-db2", "db2-cloud", "db2-warehouse", "resource", "sqlalchemy", "ibm_db" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/db2_resource/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/db2_resource/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/db2_resource/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/db2_resource/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/db2_resource/schema.json", "dependencies": { "pip": [ "sqlalchemy>=2.0.0", "ibm_db>=3.2.0", "ibm_db_sa>=0.4.0" ] }, "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/db2.md", "last_validated": "2026-05-14" }, "vendor": "IBM", "produces": [ "resource" ], "agent_hints": {} }, { "id": "dbt_cloud_job_sensor", "name": "dbt Cloud Job Sensor", "category": "sensor", "description": "Trigger a Dagster job when a dbt Cloud job run completes.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/dbt_cloud_job_sensor", "tags": [ "sensor", "dbt", "cloud", "job" ], "dependencies": { "pip": [ "requests>=2.28.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dbt_cloud_job_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dbt_cloud_job_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dbt_cloud_job_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dbt_cloud_job_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/dbt_cloud_job_sensor/requirements.txt", "icon": "si:dbt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:dbt" ] }, { "id": "dbt_cloud_resource", "name": "dbt Cloud Resource", "category": "resource", "description": "Register a dagster-dbt DbtCloudClientResource for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/dbt_cloud_resource", "tags": [ "resource", "dbt", "analytics" ], "dependencies": { "pip": [ "dagster-dbt" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/dbt_cloud_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/dbt_cloud_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/dbt_cloud_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/dbt_cloud_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/dbt_cloud_resource/requirements.txt", "icon": "si:dbt", "x-dagster-provides": [ "dbt_cloud_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:dbt" ] }, { "id": "dbt_docs_enriched_project", "name": "dbt Docs Enriched Project", "category": "dbt", "description": "Extends DbtProjectComponent with rich dbt docs metadata on every asset.", "path": "assets/dbt/dbt_docs_enriched_project", "tags": [ "dbt", "docs", "enriched", "project" ], "icon": "si:dbt", "type": "dagster_component_templates.DbtDocsEnrichedProjectComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/dbt/dbt_docs_enriched_project/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/dbt/dbt_docs_enriched_project/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/dbt/dbt_docs_enriched_project/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/dbt/dbt_docs_enriched_project/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/dbt/dbt_docs_enriched_project/requirements.txt", "component_type": "dagster_component_templates.DbtDocsEnrichedProjectComponent", "validation": { "level": "code", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "dagster-dbt" ] }, "produces": [ "asset_check", "multi_asset" ], "agent_hints": {}, "consumes": [ "resource:dbt" ] }, { "id": "dbt_run_job", "name": "DbtRunJobComponent", "category": "jobs", "description": "Run a `dbt` command (run, build, test, snapshot) as a Dagster job \u2014 no asset modeling.", "version": "1.0.0", "author": "Dagster Community", "path": "jobs/dbt_run_job", "tags": [ "job", "dbt", "task", "transform" ], "dependencies": { "pip": [ "dbt-core" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/dbt_run_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/dbt_run_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/dbt_run_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/dbt_run_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/dbt_run_job/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "job", "schedule" ], "agent_hints": {}, "consumes": [ "resource:dbt" ] }, { "id": "dbt_state_reuse_patch", "name": "DbtStateReusePatch", "category": "integration", "description": "Bridge patch \u2014 monkey-patches dagster-dbt to treat `no-op` (state-reuse) and `partial success` (microbatch) statuses as materialization events. Remove once dagster-io/dagster#34010 merges + releases.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/dbt_state_reuse_patch", "tags": [ "dbt", "state-reuse", "microbatch", "resilience", "bridge", "patch" ], "dependencies": { "pip": [ "dagster-dbt" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/dbt_state_reuse_patch/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/dbt_state_reuse_patch/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/dbt_state_reuse_patch/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/dbt_state_reuse_patch/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/dbt_state_reuse_patch/requirements.txt", "validation": { "level": "code", "evidence": "https://github.com/dagster-io/dagster/pull/34010", "last_validated": "2026-07-15" }, "produces": [ "other" ], "agent_hints": { "inputs": "None. Add to defs.yaml with empty attributes: {}.", "outputs": "No assets. Patches dagster-dbt in-process at code-location load.", "side_effects": "Monkey-patches dagster_dbt.core.dbt_cli_event.DbtCliEventMessage._get_node_status AND dagster_dbt.cloud_v2.run_handler.DbtCloudJobRunResults.to_default_asset_events. Idempotent; no-op if upstream fix present.", "anti_uses": "Not needed once dagster-dbt release includes PR #34010." }, "consumes": [ "resource:dbt" ] }, { "id": "decision_tree_model", "name": "Decision Tree", "category": "analytics", "description": "Fit a decision tree for classification or regression.", "path": "assets/analytics/decision_tree_model", "tags": [ "analytics", "decision", "tree", "model" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/decision_tree_model/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/decision_tree_model/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/decision_tree_model/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/decision_tree_model/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/decision_tree_model/requirements.txt", "icon": "BarChart2", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/wine_ml_pipeline.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with numeric feature columns + target column.", "outputs": "DataFrame with predictions + optional feature importances.", "side_effects": "Output is test-set predictions (not the full input). Requires sklearn.", "anti_uses": "For linear regression use linear_regression_model. For ensembles use gradient_boosting_model / random_forest_model.", "requires_pip": [ "sklearn" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "scikit-learn" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "delta_ingestion", "name": "Delta Lake Ingestion", "category": "ingestion", "description": "Read from an EXISTING external Delta Lake table (S3 / ADLS / GCS / Unity Catalog) into a Dagster asset as a pandas DataFrame. Uses delta-rs (no Spark / JVM). Supports version + timestamp time-travel + partition-predicate pushdown.", "path": "assets/ingestion/delta_ingestion", "tags": [ "ingestion", "delta", "delta-lake", "lakehouse", "delta-rs", "databricks", "unity-catalog" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/delta_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/delta_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/delta_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/delta_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/delta_ingestion/requirements.txt", "icon": "Database", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/lakehouse_local.md", "last_validated": "2026-05-14" }, "vendor": "Databricks", "agent_hints": { "inputs": "None (root source) \u2014 reads a Delta Lake table by path or URI.", "outputs": "DataFrame with columns from the Delta table's schema.", "side_effects": "Requires deltalake or PySpark. Reads latest version by default; can time-travel via version/timestamp.", "anti_uses": "For writing to Delta use dataframe_to_delta_table. For Iceberg use iceberg_ingestion.", "requires_resources": [ "storage_resource" ], "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "deltalake", "pyarrow", "pandas" ] }, "produces": [ "asset" ] }, { "id": "delta_lake_io_manager", "name": "Delta Lake IO Manager", "category": "io_manager", "description": "Register a DeltaLakePandasIOManager so assets are stored as Delta tables on local disk, S3, GCS, or Azure ADLS", "version": "0.1.0", "author": "Dagster Labs", "path": "io_managers/delta_lake_io_manager", "tags": [ "io_manager", "delta-lake", "parquet", "lakehouse", "multi-cloud" ], "dependencies": { "pip": [ "dagster-deltalake-pandas>=0.4.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/delta_lake_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/delta_lake_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/delta_lake_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/delta_lake_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/delta_lake_io_manager/requirements.txt", "icon": "si:delta", "x-dagster-provides": [ "io_manager" ], "validation": { "level": "live", "last_validated": "2026-05-19", "evidence": "setup_local_io_demo.sh" }, "vendor": "Databricks", "produces": [ "resource" ], "agent_hints": {} }, { "id": "deltalake_polars_io_manager", "name": "DeltaLakePolarsIOManager", "category": "io_manager", "description": "Wrap dagster-deltalake-polars so polars.DataFrame assets persist as Delta tables.", "version": "1.0.0", "author": "Dagster Community", "path": "io_managers/deltalake_polars_io_manager", "tags": [ "io_manager", "deltalake", "polars", "lakehouse", "official" ], "dependencies": { "pip": [ "dagster", "dagster-deltalake-polars", "polars" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/deltalake_polars_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/deltalake_polars_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/deltalake_polars_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/deltalake_polars_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/deltalake_polars_io_manager/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/local_io.md", "last_validated": "2026-05-08" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "dependency_graph", "name": "Dependency Graph", "category": "infrastructure", "description": "Define dependencies between assets without modifying component schemas", "version": "1.0.0", "author": "Dagster Community", "path": "core/dependency_graph", "tags": [ "core", "infrastructure", "lineage" ], "dependencies": { "pip": [] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/core/dependency_graph/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/core/dependency_graph/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/core/dependency_graph/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/core/dependency_graph/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/core/dependency_graph/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "detect_changes", "name": "DetectChangesComponent", "category": "transformation", "description": "Diff incoming DataFrame against a prior snapshot \u2014 emit rows with a change_type column (insert/update/delete/unchanged).", "version": "1.0.0", "author": "Dagster Community", "path": "transforms/detect_changes", "tags": [ "detect-changes", "diff", "cdc", "snapshot" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/detect_changes/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/detect_changes/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/detect_changes/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/detect_changes/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/detect_changes/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/detect_changes.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "TWO DataFrames \u2014 before + after \u2014 via left/right upstream keys.", "outputs": "DataFrame with change-detection results: added/removed/modified rows flagged.", "side_effects": "Row set is derived; column set includes change_type column.", "anti_uses": "For SCD Type-2 history tracking use scd_type_2. For simple joins use dataframe_join." }, "produces": [ "asset" ] }, { "id": "distance_calculator", "name": "Distance Calculator", "category": "analytics", "description": "Calculate geographic distance between two coordinate pairs per row.", "path": "assets/analytics/distance_calculator", "tags": [ "analytics", "distance", "calculator" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/distance_calculator/schema.json", "component_type": "dagster_component_templates.DistanceCalculatorComponent", "icon": "BarChart2", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/distance_calculator/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/distance_calculator/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/distance_calculator/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/distance_calculator/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/cities_distance.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with two point columns (lat/lon pairs).", "outputs": "DataFrame + a NEW column (default name `distance_km`, override via `output_column`) with haversine/geodesic distance between the two point columns.", "side_effects": "Adds column. Requires shapely / pyproj / geopy depending on config.", "requires_pip": [ "shapely" ], "anti_uses": "Two modes: (a) column-to-column: set lat2_column + lng2_column to column names in the DataFrame. (b) fixed reference point: OMIT lat2_column / lng2_column and instead set scalar `lat2` / `lng2` (e.g. lat2: 35.68, lng2: 139.65 for Tokyo). Output column defaults to `distance_km` \u2014 NOT `distance`. Downstream sort/filter must reference the actual output_column name. For nearest polygon use spatial_join.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "geopy" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "dlt_dataframe_writer", "name": "DLT DataFrame Writer", "category": "sink", "description": "Component for writing pandas DataFrames to any database using dlt (data load tool).", "version": "1.0.0", "author": "Dagster Community", "path": "assets/sinks/dlt_dataframe_writer", "tags": [ "sink", "dlt", "dataframe", "writer" ], "dependencies": { "pip": [ "pandas>=1.5.0", "dlt[duckdb]>=0.4.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dlt_dataframe_writer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dlt_dataframe_writer/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dlt_dataframe_writer/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dlt_dataframe_writer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dlt_dataframe_writer/requirements.txt", "icon": "ArrowDownToLine", "validation": { "level": "live", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes via dlt (Data Load Tool) to a configured destination).", "side_effects": "Automatically manages schema evolution. Requires dlt destination configured.", "anti_uses": "For direct writes without dlt abstractions, use the destination-specific component (e.g. dataframe_to_snowflake)." }, "produces": [ "asset" ] }, { "id": "dlt_pipeline_assets", "name": "DltPipelineAssets", "category": "integration", "description": "Run a dlt (data-load-tool) pipeline as Dagster assets via dagster-dlt.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/dlt_pipeline_assets", "tags": [ "integration", "dlt", "elt", "official" ], "dependencies": { "pip": [ "dagster", "dagster-dlt", "dlt" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/dlt_pipeline_assets/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/dlt_pipeline_assets/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/dlt_pipeline_assets/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/dlt_pipeline_assets/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/dlt_pipeline_assets/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "asset", "resource" ], "agent_hints": {} }, { "id": "docker_container_asset", "name": "DockerContainerAsset", "category": "infrastructure", "description": "Run a Docker container as a Dagster asset via dagster-docker.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/infrastructure/docker_container_asset", "tags": [ "infrastructure", "docker", "container", "official" ], "dependencies": { "pip": [ "dagster", "dagster-docker" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/docker_container_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/docker_container_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/docker_container_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/docker_container_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/docker_container_asset/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/docker_container.md", "last_validated": "2026-05-14" }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "document_ai_extractor", "name": "DocumentAiExtractorComponent", "category": "ai", "description": "Cloud Document AI structured document parsing. Use a deployed processor (FORM_PARSER, INVOICE_PROCESSOR, OCR_PROCESSOR, LAYOUT_PARSER, custom CDE, etc.) to extract text, form fields, entities, and tables from documents. For flat OCR on photos, prefer vision_api_asset (DOCUMENT_TEXT_DETECTION).", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/document_ai_extractor", "tags": [ "ai", "document-ai", "google", "ocr", "form-parser", "invoice", "receipt", "structured-extraction" ], "dependencies": { "pip": [ "dagster>=1.8.0", "pandas>=1.5.0", "google-cloud-documentai>=2.20.0", "google-auth>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/document_ai_extractor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/document_ai_extractor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/document_ai_extractor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/document_ai_extractor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/document_ai_extractor/requirements.txt", "component_type": "dagster_component_templates.DocumentAiExtractorComponent", "validation": { "level": "live", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame" } }, { "id": "document_chunker", "name": "Document Chunker", "category": "ai", "description": "Component for splitting documents into chunks for embeddings and RAG.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/document_chunker", "tags": [ "ai", "document", "chunker" ], "dependencies": { "pip": [ "pandas>=1.5.0", "tiktoken>=0.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/document_chunker/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/document_chunker/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/document_chunker/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/document_chunker/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/document_chunker/requirements.txt", "icon": "Sparkles", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/nlp_utilities.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame" } }, { "id": "document_ingestion", "name": "Document Ingestion", "category": "ingestion", "description": "Component for ingesting documents for RAG/Q&A systems.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/document_ingestion", "tags": [ "ingestion", "document" ], "dependencies": { "pip": [ "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/document_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/document_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/document_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/document_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/document_ingestion/requirements.txt", "icon": "ArrowUpFromLine", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root source) \u2014 reads PDF/DOCX/HTML/TXT files from a path or URL.", "outputs": "DataFrame with columns: file_path, content_text, (optional: page_number, metadata).", "side_effects": "Requires unstructured / pypdf / python-docx depending on format.", "anti_uses": "For structured tabular files (CSV/parquet/xlsx) use file_ingestion. For OCR of scanned PDFs, use a specialized OCR pipeline.", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "document_layout_analyzer", "name": "Document Layout Analyzer", "category": "ai", "description": "Analyze the layout of document images to detect regions such as text blocks, tables, figures, and headers.", "path": "assets/ai/document_layout_analyzer", "tags": [ "ai", "image", "document", "layout", "vision" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/document_layout_analyzer/schema.json", "component_type": "dagster_component_templates.DocumentLayoutAnalyzerComponent", "icon": "Layout", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/document_layout_analyzer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/document_layout_analyzer/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/document_layout_analyzer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/document_layout_analyzer/requirements.txt", "validation": { "level": "live", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "transformers", "Pillow", "torch" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "document_merger", "name": "Document Merger", "category": "transformation", "description": "Merge two document DataFrames on a key column, designed for document-style data with nested columns.", "path": "assets/transforms/document_merger", "tags": [ "transformation", "documents", "merge", "join", "combine" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/document_merger/schema.json", "component_type": "dagster_component_templates.DocumentMergerComponent", "icon": "GitMerge", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/document_merger/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/document_merger/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/document_merger/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/document_merger/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/transformations.md", "last_validated": "2026-05-14" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": {} }, { "id": "document_summarizer", "name": "Document Summarizer", "category": "ai", "description": "Component for summarizing documents with LLMs.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/document_summarizer", "tags": [ "ai", "document", "summarizer" ], "dependencies": { "pip": [ "openai>=1.0.0", "anthropic>=0.18.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/document_summarizer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/document_summarizer/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/document_summarizer/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/document_summarizer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/document_summarizer/requirements.txt", "icon": "Sparkles", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/ai_with_llm.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "document_text_extractor", "name": "Document Text Extractor", "category": "ai", "description": "Component for extracting text from documents.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/document_text_extractor", "tags": [ "ai", "document", "text", "extractor" ], "dependencies": { "pip": [ "pypdf>=3.0.0", "pdfplumber>=0.9.0", "python-docx>=0.8.11", "beautifulsoup4>=4.11.0", "pytesseract>=0.3.10", "pdf2image>=1.16.0", "Pillow>=9.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/document_text_extractor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/document_text_extractor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/document_text_extractor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/document_text_extractor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/document_text_extractor/requirements.txt", "icon": "Sparkles", "validation": { "level": "live", "last_validated": "2026-05-11" }, "produces": [ "asset", "asset_check" ], "agent_hints": {} }, { "id": "doris_query_asset", "name": "Apache Doris Query Asset", "category": "source", "description": "Run a SQL query against Apache Doris and emit the result as a Pandas DataFrame asset. Symmetric to dataframe_to_doris.", "path": "assets/sources/doris_query_asset", "tags": [ "source", "doris", "olap", "sql" ], "vendor": "Apache Doris", "dependencies": { "pip": [ "pandas>=2.0.0", "sqlalchemy>=2.0.0", "pymysql" ] }, "version": "1.0.0", "author": "Dagster Community", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/doris_query_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/doris_query_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/doris_query_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/doris_query_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/doris_query_asset/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-28", "evidence": "build_defs + Pydantic instantiation pass; awaiting customer pilot for live" }, "agent_hints": { "inputs": "None (root source) \u2014 runs SQL against Apache Doris.", "outputs": "DataFrame from query.", "requires_resources": [ "doris_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:doris" ] }, { "id": "doris_resource", "name": "Apache Doris Resource", "category": "resource", "description": "Apache Doris connection resource \u2014 SQLAlchemy URL via MySQL wire protocol (port 9030) + HTTP frontend endpoint (port 8030) for Stream Load.", "path": "resources/doris_resource", "tags": [ "resource", "doris", "olap", "mpp", "apache" ], "vendor": "Apache Doris", "dependencies": { "pip": [ "sqlalchemy>=2.0.0", "pymysql" ] }, "version": "1.0.0", "author": "Dagster Community", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/doris_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/doris_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/doris_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/doris_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/doris_resource/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-28", "evidence": "build_defs + Pydantic instantiation pass; awaiting customer pilot for live" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:doris" ] }, { "id": "doris_routine_load_sensor", "name": "Doris Routine Load Sensor", "category": "sensor", "description": "Watch Apache Doris Routine Load jobs (Kafka->Doris continuous ingestion). Emits AssetObservation on healthy state + AssetMaterialization + RunRequest on PAUSED / CANCELLED / STOPPED.", "path": "sensors/doris_routine_load_sensor", "tags": [ "sensor", "doris", "olap", "routine-load", "kafka" ], "vendor": "Apache Doris", "dependencies": { "pip": [ "sqlalchemy>=2.0.0", "pymysql" ] }, "version": "1.0.0", "author": "Dagster Community", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/doris_routine_load_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/doris_routine_load_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/doris_routine_load_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/doris_routine_load_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/doris_routine_load_sensor/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-28", "evidence": "build_defs + Pydantic instantiation pass; awaiting customer pilot for live" }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:doris" ] }, { "id": "doris_workspace", "name": "Apache Doris Workspace", "category": "integration", "description": "Auto-discover tables / views / materialized views in an Apache Doris database; emit one observable Dagster asset per entity with row count + last-update tracking.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/doris_workspace", "tags": [ "integration", "doris", "olap", "workspace", "discovery", "observable" ], "vendor": "Apache Doris", "dependencies": { "pip": [ "sqlalchemy>=2.0", "pymysql>=1.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/doris_workspace/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/doris_workspace/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/doris_workspace/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/doris_workspace/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/doris_workspace/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-28" }, "produces": [ "multi_asset" ], "agent_hints": {}, "consumes": [ "resource:doris" ] }, { "id": "dremio_ingestion", "name": "Dremio Ingestion", "category": "ingestion", "description": "Run a SQL query against a Dremio cluster (REST or Apache Arrow Flight) and materialize the result as a Dagster asset.", "path": "assets/ingestion/dremio_ingestion", "tags": [ "ingestion", "dremio", "sap", "sql", "lakehouse" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/dremio_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/dremio_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/dremio_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/dremio_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/dremio_ingestion/requirements.txt", "icon": "Database", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/dremio_pipeline.md", "last_validated": "2026-05-13" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 runs SQL against Dremio.", "outputs": "DataFrame with columns from query.", "side_effects": "Read-only. Requires dremio_resource.", "requires_resources": [ "dremio_resource" ], "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "requests", "pandas" ] }, "produces": [ "asset" ] }, { "id": "drive_time", "name": "Drive Time", "category": "transformation", "description": "Compute drive-time isochrone polygons (where can I drive in N minutes?) for each input point via a routing API. Drop-in for Alteryx's Drive Time and Trade Area tools. v1 ships openrouteservice (free tier with API key); google / mapbox / OSRM are stubbed with same component shape.", "path": "assets/transforms/drive_time", "tags": [ "spatial", "geo", "routing", "isochrone", "openrouteservice", "drive_time", "trade_area", "alteryx" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/drive_time/schema.json", "component_type": "dagster_component_templates.DriveTimeComponent", "icon": "Navigation", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/drive_time/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/drive_time/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/drive_time/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/drive_time/requirements.txt", "validation": { "level": "code", "last_validated": "2026-06-05" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "geopandas", "shapely", "openrouteservice", "requests" ] }, "agent_hints": { "inputs": "DataFrame with origin + destination lat/lon columns.", "outputs": "DataFrame + travel_time / distance columns.", "side_effects": "Requires routing API (OSRM/HERE/Google) \u2014 external call.", "anti_uses": "For straight-line distance use distance_calculator (no API).", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "dspy_program", "name": "Dspy Program", "category": "ai", "description": "Run a DSPy program with automatic prompt optimization against a DataFrame column using a signature-based interface.", "path": "assets/ai/dspy_program", "tags": [ "ai", "dspy", "llm", "prompt-optimization", "chain-of-thought", "nlp" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/dspy_program/schema.json", "component_type": "dagster_component_templates.DspyProgramComponent", "icon": "Cpu", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/dspy_program/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/dspy_program/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/dspy_program/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/dspy_program/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/llm_execution.md", "last_validated": "2026-05-08" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dspy-ai", "pandas" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "duckdb_io_manager", "name": "DuckDB IO Manager", "category": "io_manager", "description": "Register a DuckDBPandasIOManager so assets are automatically stored in and loaded from a local DuckDB file", "version": "0.1.0", "author": "Dagster Labs", "path": "io_managers/duckdb_io_manager", "tags": [ "io_manager", "duckdb", "local", "analytics", "embedded" ], "dependencies": { "pip": [ "dagster-duckdb-pandas>=0.22.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/duckdb_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/duckdb_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/duckdb_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/duckdb_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/duckdb_io_manager/requirements.txt", "icon": "si:duckdb", "x-dagster-provides": [ "io_manager" ], "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/duckdb_warehouse.md", "last_validated": "2026-05-06" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:duckdb" ] }, { "id": "duckdb_polars_io_manager", "name": "DuckDBPolarsIOManager", "category": "io_manager", "description": "Wrap dagster-duckdb-polars's DuckDBPolarsIOManager so polars.DataFrame assets persist to DuckDB.", "version": "1.0.0", "author": "Dagster Community", "path": "io_managers/duckdb_polars_io_manager", "tags": [ "io_manager", "duckdb", "polars", "local", "official" ], "dependencies": { "pip": [ "dagster", "dagster-duckdb-polars", "polars" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/duckdb_polars_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/duckdb_polars_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/duckdb_polars_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/duckdb_polars_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/duckdb_polars_io_manager/requirements.txt", "validation": { "level": "live", "last_validated": "2026-05-19", "evidence": "setup_local_io_demo.sh" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:duckdb" ] }, { "id": "duckdb_pyspark_io_manager", "name": "DuckDBPySparkIOManager", "category": "io_manager", "description": "Wrap dagster-duckdb-pyspark so PySpark DataFrames persist to DuckDB.", "version": "1.0.0", "author": "Dagster Community", "path": "io_managers/duckdb_pyspark_io_manager", "tags": [ "io_manager", "duckdb", "pyspark", "local", "official" ], "dependencies": { "pip": [ "dagster", "dagster-duckdb-pyspark", "pyspark" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/duckdb_pyspark_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/duckdb_pyspark_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/duckdb_pyspark_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/duckdb_pyspark_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/duckdb_pyspark_io_manager/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:duckdb" ] }, { "id": "duckdb_query_reader", "name": "DuckDB Query", "category": "source", "description": "Component for reading data from DuckDB tables using SQL queries.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/sources/duckdb_query_reader", "tags": [ "source", "duckdb", "query", "reader" ], "dependencies": { "pip": [ "duckdb>=0.9.0", "pandas>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/duckdb_query_reader/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/duckdb_query_reader/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/duckdb_query_reader/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/duckdb_query_reader/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/duckdb_query_reader/requirements.txt", "icon": "si:duckdb", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/local_io.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "None (root source) \u2014 runs SQL against a local DuckDB file.", "outputs": "DataFrame from query.", "side_effects": "Requires duckdb + db_path. Fast columnar in-memory OLAP.", "anti_uses": "For remote warehouses use dataframe_from_sql. For writing use duckdb_table_writer.", "requires_pip": [ "duckdb" ], "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ], "consumes": [ "resource:duckdb" ] }, { "id": "duckdb_resource", "name": "DuckDB Resource", "category": "resource", "description": "Register a DuckDB resource for fast in-process analytical queries", "version": "1.0.0", "author": "Dagster Community", "path": "resources/duckdb_resource", "tags": [ "resource", "duckdb", "database", "analytics" ], "dependencies": { "pip": [ "duckdb" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/duckdb_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/duckdb_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/duckdb_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/duckdb_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/duckdb_resource/requirements.txt", "icon": "si:duckdb", "x-dagster-provides": [ "duckdb_resource" ], "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/duckdb_warehouse.md", "last_validated": "2026-05-14" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:duckdb" ] }, { "id": "duckdb_table_writer", "name": "DuckDB Writer", "category": "sink", "description": "Component for writing pandas DataFrames to DuckDB tables.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/sinks/duckdb_table_writer", "tags": [ "sink", "duckdb", "table", "writer" ], "dependencies": { "pip": [ "duckdb>=0.9.0", "pandas>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/duckdb_table_writer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/duckdb_table_writer/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/duckdb_table_writer/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/duckdb_table_writer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/duckdb_table_writer/requirements.txt", "icon": "si:duckdb", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/local_io.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes to a DuckDB table).", "side_effects": "Writes to a local DuckDB file (`db_path` config). Fast columnar analytical store.", "anti_uses": "For cloud warehouses use dataframe_to_snowflake/bigquery. For SQLite use dataframe_to_table with sqlite URL." }, "produces": [ "asset" ], "consumes": [ "resource:duckdb" ] }, { "id": "dynamic_fanout_job", "name": "DynamicFanoutJobComponent", "category": "jobs", "description": "Generic DynamicOut op job \u2014 discover\u2192map\u2192collect via Python callables. Parallel fan-out without catalog overhead.", "version": "1.0.0", "author": "Dagster Community", "path": "jobs/dynamic_fanout_job", "tags": [ "job", "dynamic-out", "fanout", "parallelism", "compound" ], "dependencies": { "pip": [] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/dynamic_fanout_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/dynamic_fanout_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/dynamic_fanout_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/dynamic_fanout_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/dynamic_fanout_job/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/dynamic_fanout_job.md", "last_validated": "2026-05-06" }, "produces": [ "job", "schedule" ], "agent_hints": {} }, { "id": "dynamic_rename", "name": "Dynamic Rename", "category": "transformation", "description": "Pattern-based column renaming with several modes (first_row / add_prefix / add_suffix / replace / mapping / mapping_from_column). Drop-in for Alteryx Dynamic Rename.", "path": "assets/transforms/dynamic_rename", "tags": [ "transformation", "alteryx" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dynamic_rename/schema.json", "component_type": "dagster_component_templates.DynamicRenameComponent", "icon": "Edit", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dynamic_rename/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dynamic_rename/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dynamic_rename/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/dynamic_rename/requirements.txt", "validation": { "level": "code", "last_validated": "2026-06-06" }, "agent_hints": { "inputs": "Any DataFrame + a mapping (or rule) for column renaming.", "outputs": "Same rows; some column NAMES changed per mapping.", "side_effects": "Renames columns IN PLACE \u2014 downstream referencing OLD names will KeyError.", "anti_uses": "For column drop use select_columns. For value transformation use formula.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset" ] }, { "id": "dynamodb_reader", "name": "DynamoDB Reader", "category": "source", "description": "Component for reading items from an AWS DynamoDB table.", "path": "assets/sources/dynamodb_reader", "tags": [ "source", "dynamodb", "reader" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dynamodb_reader/schema.json", "component_type": "dagster_component_templates.DynamodbReaderComponent", "icon": "si:amazondynamodb", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dynamodb_reader/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dynamodb_reader/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dynamodb_reader/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dynamodb_reader/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "AWS", "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "boto3" ] }, "agent_hints": { "inputs": "None (root source) \u2014 reads documents/records from DynamoDB.", "outputs": "DataFrame with columns from DynamoDB docs (nested fields may need dataframe_flatten_nested_columns downstream).", "side_effects": "Read-only. Requires aws_credentials.", "anti_uses": "For writing TO DynamoDB use its writer. For SQL DBs use dataframe_from_sql.", "requires_resources": [ "aws_credentials" ], "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ], "consumes": [ "resource:dynamodb" ] }, { "id": "dynamodb_resource", "name": "Amazon DynamoDB Resource", "category": "resource", "description": "Register an AWS DynamoDB resource for serverless key-value and document storage", "version": "1.0.0", "author": "Dagster Community", "path": "resources/dynamodb_resource", "tags": [ "resource", "dynamodb", "aws", "database", "nosql" ], "dependencies": { "pip": [ "boto3" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/dynamodb_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/dynamodb_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/dynamodb_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/dynamodb_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/dynamodb_resource/requirements.txt", "icon": "si:amazondynamodb", "x-dagster-provides": [ "dynamodb_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "AWS", "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:dynamodb" ] }, { "id": "dynamodb_writer", "name": "DynamoDB Writer", "category": "sink", "description": "Component for writing a DataFrame to an AWS DynamoDB table.", "path": "assets/sinks/dynamodb_writer", "tags": [ "sink", "dynamodb", "writer" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dynamodb_writer/schema.json", "component_type": "dagster_component_templates.DynamodbWriterComponent", "icon": "si:amazondynamodb", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dynamodb_writer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dynamodb_writer/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dynamodb_writer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/dynamodb_writer/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "AWS", "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes items to DynamoDB).", "side_effects": "Batch write. Requires aws_credentials + dynamodb table pre-created.", "anti_uses": "For relational data use dataframe_to_table. For time-series use dataframe_to_influxdb.", "requires_resources": [ "aws_credentials" ], "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "boto3" ] }, "produces": [ "asset" ], "consumes": [ "resource:dynamodb" ] }, { "id": "dynatrace_metrics_query", "name": "Dynatrace Metrics Query", "category": "source", "description": "Query Dynatrace metrics via the v2 Metrics API \u2192 DataFrame.", "path": "assets/sources/dynatrace_metrics_query", "tags": [ "source", "dynatrace", "metrics", "observability" ], "type": "dagster_component_templates.DynatraceMetricsQueryComponent", "component_type": "dagster_component_templates.DynatraceMetricsQueryComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dynatrace_metrics_query/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dynatrace_metrics_query/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dynatrace_metrics_query/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dynatrace_metrics_query/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/dynatrace_metrics_query/requirements.txt", "icon": "LineChart", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/newrelic_dynatrace.md", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "requests" ] }, "agent_hints": { "inputs": "None (root source) \u2014 runs a query against Dynatrace metrics log store.", "outputs": "DataFrame with log/metric rows \u2014 schema depends on the query.", "side_effects": "Requires dynatrace_resource. Query language is vendor-specific.", "anti_uses": "For streaming logs use a broker-to-database ingest (kafka_to_database_asset). Not for writing.", "requires_resources": [ "dynatrace_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:dynatrace" ] }, { "id": "dynatrace_resource", "name": "Dynatrace Resource", "category": "resource", "description": "Dynatrace API client wrapper (Environment API v2 + Metrics API v2). SaaS and Managed.", "path": "resources/dynatrace_resource", "tags": [ "resource", "dynatrace", "observability", "metrics", "events" ], "type": "dagster_component_templates.DynatraceResourceComponent", "component_type": "dagster_component_templates.DynatraceResourceComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/dynatrace_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/dynatrace_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/dynatrace_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/dynatrace_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/dynatrace_resource/requirements.txt", "icon": "Activity", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/newrelic_dynatrace.md", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "requests" ] }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:dynatrace" ] }, { "id": "ecommerce_standardizer", "name": "E-commerce Standardizer", "category": "analytics", "description": "Component for standardizing e-commerce data across platforms.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/ecommerce_standardizer", "tags": [ "analytics", "ecommerce", "standardizer" ], "dependencies": { "pip": [ "pandas>=1.5.0", "numpy>=1.24.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ecommerce_standardizer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ecommerce_standardizer/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ecommerce_standardizer/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ecommerce_standardizer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ecommerce_standardizer/requirements.txt", "icon": "BarChart2", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame from a specific e-commerce platform (Shopify / WooCommerce / Magento).", "outputs": "DataFrame with standardized order schema (order_id, customer_id, product_id, quantity, price, timestamp)." }, "produces": [ "asset", "asset_check" ] }, { "id": "elasticsearch_asset", "name": "Elasticsearch Asset", "category": "analytics", "description": "Index data into Elasticsearch or query ES and write results to a database table.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/elasticsearch_asset", "tags": [ "analytics", "elasticsearch", "asset" ], "dependencies": { "pip": [ "elasticsearch>=8.0", "pandas", "sqlalchemy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/elasticsearch_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/elasticsearch_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/elasticsearch_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/elasticsearch_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/elasticsearch_asset/requirements.txt", "icon": "si:elasticsearch", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:elasticsearch" ] }, { "id": "elasticsearch_reader", "name": "Elasticsearch Reader", "category": "source", "description": "Component for searching and querying an Elasticsearch index.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/sources/elasticsearch_reader", "tags": [ "source", "elasticsearch", "reader" ], "dependencies": { "pip": [ "pandas>=1.5.0", "elasticsearch>=8.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/elasticsearch_reader/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/elasticsearch_reader/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/elasticsearch_reader/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/elasticsearch_reader/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/elasticsearch_reader/requirements.txt", "icon": "si:elasticsearch", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/elasticsearch.md", "last_validated": "2026-05-14" }, "agent_hints": { "inputs": "None (root source) \u2014 reads documents/records from Elasticsearch.", "outputs": "DataFrame with columns from Elasticsearch docs (nested fields may need dataframe_flatten_nested_columns downstream).", "side_effects": "Read-only. Requires elasticsearch_resource.", "anti_uses": "For writing TO Elasticsearch use its writer. For SQL DBs use dataframe_from_sql.", "requires_resources": [ "elasticsearch_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ], "consumes": [ "resource:elasticsearch" ] }, { "id": "elasticsearch_resource", "name": "Elasticsearch Resource", "category": "resource", "description": "Register an Elasticsearch resource for full-text search and analytics", "version": "1.0.0", "author": "Dagster Community", "path": "resources/elasticsearch_resource", "tags": [ "resource", "elasticsearch", "search", "database" ], "dependencies": { "pip": [ "elasticsearch>=8.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/elasticsearch_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/elasticsearch_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/elasticsearch_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/elasticsearch_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/elasticsearch_resource/requirements.txt", "icon": "si:elastic", "x-dagster-provides": [ "elasticsearch_resource" ], "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/elasticsearch.md", "last_validated": "2026-05-14" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:elasticsearch" ] }, { "id": "email_parser", "name": "Email Parser", "category": "transformation", "description": "Parse raw email content (RFC 2822 format) from a column into structured fields.", "path": "assets/transforms/email_parser", "tags": [ "transformation", "documents", "email", "parsing", "rfc2822" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/email_parser/schema.json", "component_type": "dagster_component_templates.EmailParserComponent", "icon": "Mail", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/email_parser/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/email_parser/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/email_parser/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/email_parser/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/transformations.md", "last_validated": "2026-05-14" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "embeddings_generator", "name": "Embeddings Generator", "category": "ai", "description": "Component for generating text embeddings for RAG and semantic search.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/embeddings_generator", "tags": [ "ai", "embeddings", "generator" ], "dependencies": { "pip": [ "pandas>=1.5.0", "numpy>=1.20.0", "openai>=1.0.0", "sentence-transformers>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/embeddings_generator/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/embeddings_generator/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/embeddings_generator/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/embeddings_generator/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/embeddings_generator/requirements.txt", "icon": "Sparkles", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_search.md", "last_validated": "2026-05-06" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame" } }, { "id": "enhanced_data_quality_checks", "name": "Enhanced Data Quality Checks", "category": "check", "description": "Comparison operators for validation checks.", "version": "1.0.0", "author": "Dagster Community", "path": "asset_checks/enhanced_data_quality_checks", "tags": [ "check", "enhanced", "data", "quality", "checks" ], "dependencies": { "pip": [ "pandas", "numpy", "scipy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/enhanced_data_quality_checks/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/enhanced_data_quality_checks/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/enhanced_data_quality_checks/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/enhanced_data_quality_checks/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/enhanced_data_quality_checks/requirements.txt", "icon": "CheckCircle", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/data_quality.md", "last_validated": "2026-05-08" }, "produces": [ "asset_check" ], "agent_hints": {} }, { "id": "entity_extractor", "name": "Entity Extractor", "category": "ai", "description": "Component for extracting named entities from text.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/entity_extractor", "tags": [ "ai", "entity", "extractor" ], "dependencies": { "pip": [ "pandas>=1.5.0", "openai>=1.0.0", "anthropic>=0.18.0", "spacy>=3.5.0", "transformers>=4.30.0", "torch>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/entity_extractor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/entity_extractor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/entity_extractor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/entity_extractor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/entity_extractor/requirements.txt", "icon": "Sparkles", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/ai_with_llm.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame" } }, { "id": "ets_forecast", "name": "ETS Forecast", "category": "transformation", "description": "Fit an ETS (Exponential Smoothing) model and generate forecasts.", "path": "assets/transforms/ets_forecast", "tags": [ "transformation", "ets", "forecast" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/ets_forecast/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/ets_forecast/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/ets_forecast/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/ets_forecast/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/ets_forecast/requirements.txt", "icon": "Shuffle", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/forecast_comparison.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with datetime + numeric target column.", "outputs": "DataFrame with forecast rows (Exponential Smoothing / Holt-Winters).", "side_effects": "Good baseline for seasonal data. Requires statsmodels.", "anti_uses": "For ARIMA use arima_forecast. For covariate models use ts_covariate_forecast.", "requires_pip": [ "statsmodels" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "statsmodels" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "event_data_standardizer", "name": "Event Data Standardizer", "category": "analytics", "description": "Component for standardizing event tracking data across platforms.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/event_data_standardizer", "tags": [ "analytics", "event", "data", "standardizer" ], "dependencies": { "pip": [ "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/event_data_standardizer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/event_data_standardizer/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/event_data_standardizer/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/event_data_standardizer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/event_data_standardizer/requirements.txt", "icon": "BarChart2", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "Event stream DataFrame from various sources.", "outputs": "Standardized (user_id, event, timestamp, properties) shape." }, "produces": [ "asset", "asset_check" ] }, { "id": "eventhubs_monitor", "name": "Azure Event Hubs Monitor", "category": "sensor", "description": "Component for monitoring an Azure Event Hub for new events.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/eventhubs_monitor", "tags": [ "sensor", "eventhubs", "monitor" ], "dependencies": { "pip": [ "azure-eventhub>=5.11.0", "azure-identity>=1.12.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/eventhubs_monitor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/eventhubs_monitor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/eventhubs_monitor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/eventhubs_monitor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/eventhubs_monitor/requirements.txt", "icon": "Radar", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_eventhubs.md", "last_validated": "2026-05-06" }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:eventhub" ] }, { "id": "eventhubs_observation_sensor", "name": "Event Hubs Observation Sensor", "category": "observation", "description": "EventHubsObservationSensorComponent", "version": "1.0.0", "author": "Dagster Community", "path": "observations/eventhubs_observation_sensor", "tags": [ "observation", "eventhubs", "sensor" ], "dependencies": { "pip": [ "azure-eventhub>=5.10.0", "azure-identity>=1.10.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/eventhubs_observation_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/eventhubs_observation_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/eventhubs_observation_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/eventhubs_observation_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/eventhubs_observation_sensor/requirements.txt", "icon": "Eye", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:eventhub" ] }, { "id": "eventhubs_to_database_asset", "name": "EventHubs to Database", "category": "ingestion", "description": "Consume events from an Azure Event Hub and write them to a database table.", "path": "assets/ingestion/eventhubs_to_database_asset", "tags": [ "ingestion", "eventhubs", "database", "asset" ], "icon": "ArrowUpFromLine", "type": "dagster_component_templates.EventHubsToDatabaseAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/eventhubs_to_database_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/eventhubs_to_database_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/eventhubs_to_database_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/eventhubs_to_database_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/eventhubs_to_database_asset/requirements.txt", "component_type": "dagster_component_templates.EventHubsToDatabaseAssetComponent", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_eventhubs.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 consumes from message broker, writes rows to DB.", "outputs": "None (sink-like \u2014 persists to configured DB).", "side_effects": "Requires Azure Event Hubs broker + database_connection.", "anti_uses": "For DataFrame return use a dedicated Azure Event Hubs_reader (if available). For file ingest use file_ingestion.", "requires_resources": [ "azure_credentials", "database_connection" ], "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "azure-eventhub", "pandas", "sqlalchemy" ] }, "produces": [ "asset" ], "consumes": [ "resource:eventhub" ] }, { "id": "expense_report_extractor", "name": "Expense Report Extractor", "category": "ai", "description": "Extract structured data from employee expense reports using an LLM.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/expense_report_extractor", "tags": [ "ai", "extraction", "expenses", "finance" ], "dependencies": { "pip": [ "dagster", "pandas>=1.5.0", "litellm>=1.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/expense_report_extractor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/expense_report_extractor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/expense_report_extractor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/expense_report_extractor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/expense_report_extractor/requirements.txt", "icon": "DollarSign", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/document_extractors.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "external_adls_asset", "name": "External ADLS Asset", "category": "external", "description": "ExternalAdlsAsset", "version": "1.0.0", "author": "Dagster Community", "path": "external_assets/external_adls_asset", "tags": [ "external", "adls", "asset" ], "dependencies": { "pip": [ "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_adls_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_adls_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_adls_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_adls_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_adls_asset/requirements.txt", "icon": "si:microsoftazure", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/adls_round_trip.md", "last_validated": "2026-05-06" }, "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:adls" ] }, { "id": "external_argo_workflow", "name": "External Argo Workflow", "category": "external", "description": "Declare-only AssetSpec for an Argo Workflow. Pair with argo_workflow_sensor (Case A) or argo_workflow_trigger (Case B).", "path": "external_assets/external_argo_workflow", "tags": [ "external", "argo", "workflow", "kubernetes" ], "vendor": "Argo", "dependencies": { "pip": [] }, "version": "1.0.0", "author": "Dagster Community", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_argo_workflow/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_argo_workflow/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_argo_workflow/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_argo_workflow/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_argo_workflow/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-28", "evidence": "build_defs + Pydantic instantiation pass; awaiting customer pilot for live" }, "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:argo_workflow" ] }, { "id": "external_bigquery_table", "name": "External BigQuery Table", "category": "external", "description": "Declare a BigQuery table as an observable external asset.", "version": "1.0.0", "author": "Dagster Community", "path": "external_assets/external_bigquery_table", "tags": [ "external", "bigquery", "table" ], "dependencies": { "pip": [ "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_bigquery_table/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_bigquery_table/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_bigquery_table/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_bigquery_table/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_bigquery_table/requirements.txt", "icon": "si:googlebigquery", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/external_assets.md", "last_validated": "2026-05-08" }, "vendor": "Google", "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:bigquery" ] }, { "id": "external_clickhouse_table", "name": "External ClickHouse Table", "category": "external", "description": "Resource for connecting to ClickHouse.", "version": "1.0.0", "author": "Dagster Community", "path": "external_assets/external_clickhouse_table", "tags": [ "external", "clickhouse", "table" ], "dependencies": { "pip": [ "clickhouse-connect>=0.6.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_clickhouse_table/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_clickhouse_table/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_clickhouse_table/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_clickhouse_table/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_clickhouse_table/requirements.txt", "icon": "si:clickhouse", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/external_assets.md", "last_validated": "2026-05-08" }, "vendor": "ClickHouse", "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:clickhouse" ] }, { "id": "external_cube_metric", "name": "External Cube Metric", "vendor": "Cube", "category": "external", "description": "Declare a Cube semantic-layer measure or dimension as an external Dagster asset. Pair with cube_query_asset.", "path": "external_assets/external_cube_metric", "tags": [ "cube", "semantic-layer", "external", "metrics" ], "icon": "si:cube", "type": "dagster_community_components.ExternalCubeMetricAsset", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_cube_metric/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_cube_metric/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_cube_metric/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_cube_metric/example.yaml", "component_type": "dagster_community_components.ExternalCubeMetricAsset", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/cube_query.md", "last_validated": "2026-07-06" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [] }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "external_databricks_table", "name": "External Databricks Table", "category": "external", "description": "Declare a Databricks Delta table (Unity Catalog or Hive Metastore) as an observable external asset.", "version": "1.0.0", "author": "Dagster Community", "path": "external_assets/external_databricks_table", "tags": [ "external", "databricks", "table" ], "dependencies": { "pip": [ "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_databricks_table/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_databricks_table/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_databricks_table/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_databricks_table/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_databricks_table/requirements.txt", "icon": "si:databricks", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/external_assets.md", "last_validated": "2026-05-08" }, "vendor": "Databricks", "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:databricks" ] }, { "id": "external_delta_table", "name": "External Delta Lake Table", "category": "external", "description": "Declare an external Delta Lake table (written by Spark, Databricks, Trino, Flink, etc.) as an observable Dagster external asset. Engine-agnostic.", "path": "external_assets/external_delta_table", "tags": [ "external", "delta", "delta-lake", "lakehouse", "observable" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_delta_table/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_delta_table/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_delta_table/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_delta_table/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_delta_table/requirements.txt", "icon": "Eye", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/lakehouse_local.md", "last_validated": "2026-05-14" }, "vendor": "Databricks", "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [] }, "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:delta_lake" ] }, { "id": "external_doris_table", "name": "External Apache Doris Table", "category": "external", "description": "Declare-only AssetSpec for an Apache Doris table. For tables Doris owns the lifecycle of (Routine Load, Flink CDC, etc.).", "path": "external_assets/external_doris_table", "tags": [ "external", "doris", "olap" ], "vendor": "Apache Doris", "dependencies": { "pip": [] }, "version": "1.0.0", "author": "Dagster Community", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_doris_table/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_doris_table/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_doris_table/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_doris_table/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_doris_table/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-28", "evidence": "build_defs + Pydantic instantiation pass; awaiting customer pilot for live" }, "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:doris" ] }, { "id": "external_eventhubs_asset", "name": "External Event Hubs Asset", "category": "external", "description": "ExternalEventHubsAsset", "version": "1.0.0", "author": "Dagster Community", "path": "external_assets/external_eventhubs_asset", "tags": [ "external", "eventhubs", "asset" ], "dependencies": { "pip": [ "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_eventhubs_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_eventhubs_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_eventhubs_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_eventhubs_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_eventhubs_asset/requirements.txt", "icon": "Link", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/external_assets.md", "last_validated": "2026-05-08" }, "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:eventhub" ] }, { "id": "external_gcs_asset", "name": "External GCS Asset", "category": "external", "description": "ExternalGcsAsset", "version": "1.0.0", "author": "Dagster Community", "path": "external_assets/external_gcs_asset", "tags": [ "external", "gcs", "asset" ], "dependencies": { "pip": [ "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_gcs_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_gcs_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_gcs_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_gcs_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_gcs_asset/requirements.txt", "icon": "si:googlecloud", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/external_assets.md", "last_validated": "2026-05-08" }, "vendor": "Google", "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:gcs" ] }, { "id": "external_huggingface_space", "name": "External HuggingFace Space Asset", "category": "external", "description": "Declare a HuggingFace Space as an external Dagster asset (declare-only AssetSpec). Pair with huggingface_space_status_sensor.", "path": "external_assets/external_huggingface_space", "tags": [ "external", "huggingface", "space", "asset-spec" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_huggingface_space/schema.json", "component_type": "dagster_community_components.ExternalHuggingfaceSpaceAsset", "icon": "si:huggingface", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_huggingface_space/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_huggingface_space/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_huggingface_space/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_huggingface_space/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-22" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [] }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "external_iceberg_table", "name": "External Iceberg Table", "category": "external", "description": "Declare an external Apache Iceberg table (written by Snowflake / Trino / Spark / Flink / Databricks / etc.) as an observable Dagster external asset. Engine-agnostic.", "path": "external_assets/external_iceberg_table", "tags": [ "external", "iceberg", "lakehouse", "observable" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_iceberg_table/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_iceberg_table/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_iceberg_table/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_iceberg_table/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_iceberg_table/requirements.txt", "icon": "Eye", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/lakehouse_local.md", "last_validated": "2026-05-14" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [] }, "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:iceberg" ] }, { "id": "external_kafka_asset", "name": "External Kafka Asset", "category": "external", "description": "ExternalKafkaAsset", "version": "1.0.0", "author": "Dagster Community", "path": "external_assets/external_kafka_asset", "tags": [ "external", "kafka", "asset" ], "dependencies": { "pip": [ "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_kafka_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_kafka_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_kafka_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_kafka_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_kafka_asset/requirements.txt", "icon": "si:apachekafka", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/external_assets.md", "last_validated": "2026-05-08" }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "external_kinesis_asset", "name": "External Kinesis Asset", "category": "external", "description": "ExternalKinesisAsset", "version": "1.0.0", "author": "Dagster Community", "path": "external_assets/external_kinesis_asset", "tags": [ "external", "kinesis", "asset" ], "dependencies": { "pip": [ "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_kinesis_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_kinesis_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_kinesis_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_kinesis_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_kinesis_asset/requirements.txt", "icon": "Link", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/external_assets.md", "last_validated": "2026-05-08" }, "vendor": "AWS", "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:kinesis" ] }, { "id": "external_mqtt_asset", "name": "External MQTT Asset", "category": "external", "description": "ExternalMqttAsset", "version": "1.0.0", "author": "Dagster Community", "path": "external_assets/external_mqtt_asset", "tags": [ "external", "mqtt", "asset" ], "dependencies": { "pip": [ "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_mqtt_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_mqtt_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_mqtt_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_mqtt_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_mqtt_asset/requirements.txt", "icon": "Link", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/external_assets.md", "last_validated": "2026-05-08" }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "external_nats_asset", "name": "External NATS Asset", "category": "external", "description": "ExternalNatsAsset", "version": "1.0.0", "author": "Dagster Community", "path": "external_assets/external_nats_asset", "tags": [ "external", "nats", "asset" ], "dependencies": { "pip": [ "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_nats_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_nats_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_nats_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_nats_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_nats_asset/requirements.txt", "icon": "Link", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/external_assets.md", "last_validated": "2026-05-08" }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "external_precisely_job", "name": "External Precisely Job Asset", "category": "external", "description": "Declare a Precisely Connect ETL job as an external Dagster asset (declare-only AssetSpec). Pair with precisely_job_sensor.", "path": "external_assets/external_precisely_job", "tags": [ "external", "precisely", "etl", "asset-spec" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_precisely_job/schema.json", "component_type": "dagster_community_components.ExternalPreciselyJobAsset", "icon": "Radar", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_precisely_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_precisely_job/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_precisely_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_precisely_job/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/precisely_validation.md", "last_validated": "2026-05-22" }, "vendor": "Precisely", "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [] }, "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:precisely" ] }, { "id": "external_pubsub_asset", "name": "External Pub/Sub Asset", "category": "external", "description": "ExternalPubsubAsset", "version": "1.0.0", "author": "Dagster Community", "path": "external_assets/external_pubsub_asset", "tags": [ "external", "pubsub", "asset" ], "dependencies": { "pip": [ "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_pubsub_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_pubsub_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_pubsub_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_pubsub_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_pubsub_asset/requirements.txt", "icon": "Link", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/external_assets.md", "last_validated": "2026-05-08" }, "vendor": "Google", "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:pubsub" ] }, { "id": "external_pulsar_asset", "name": "External Pulsar Asset", "category": "external", "description": "ExternalPulsarAsset", "version": "1.0.0", "author": "Dagster Community", "path": "external_assets/external_pulsar_asset", "tags": [ "external", "pulsar", "asset" ], "dependencies": { "pip": [ "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_pulsar_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_pulsar_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_pulsar_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_pulsar_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_pulsar_asset/requirements.txt", "icon": "Link", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/external_assets.md", "last_validated": "2026-05-08" }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "external_rabbitmq_asset", "name": "External RabbitMQ Asset", "category": "external", "description": "ExternalRabbitmqAsset", "version": "1.0.0", "author": "Dagster Community", "path": "external_assets/external_rabbitmq_asset", "tags": [ "external", "rabbitmq", "asset" ], "dependencies": { "pip": [ "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_rabbitmq_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_rabbitmq_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_rabbitmq_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_rabbitmq_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_rabbitmq_asset/requirements.txt", "icon": "si:rabbitmq", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/external_assets.md", "last_validated": "2026-05-08" }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "external_redis_stream_asset", "name": "External Redis Stream Asset", "category": "external", "description": "ExternalRedisStreamAsset", "version": "1.0.0", "author": "Dagster Community", "path": "external_assets/external_redis_stream_asset", "tags": [ "external", "redis", "stream", "asset" ], "dependencies": { "pip": [ "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_redis_stream_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_redis_stream_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_redis_stream_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_redis_stream_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_redis_stream_asset/requirements.txt", "icon": "si:redis", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/external_assets.md", "last_validated": "2026-05-08" }, "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:redis" ] }, { "id": "external_s3_asset", "name": "External S3 Asset", "category": "external", "description": "ExternalS3Asset", "version": "1.0.0", "author": "Dagster Community", "path": "external_assets/external_s3_asset", "tags": [ "external", "asset" ], "dependencies": { "pip": [ "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_s3_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_s3_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_s3_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_s3_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_s3_asset/requirements.txt", "icon": "Link", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/external_assets.md", "last_validated": "2026-05-08" }, "vendor": "AWS", "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:s3" ] }, { "id": "external_servicebus_asset", "name": "External Service Bus Asset", "category": "external", "description": "ExternalServiceBusAsset", "version": "1.0.0", "author": "Dagster Community", "path": "external_assets/external_servicebus_asset", "tags": [ "external", "servicebus", "asset" ], "dependencies": { "pip": [ "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_servicebus_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_servicebus_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_servicebus_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_servicebus_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_servicebus_asset/requirements.txt", "icon": "Link", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/external_assets.md", "last_validated": "2026-05-08" }, "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:servicebus" ] }, { "id": "external_sftp_path", "name": "External SFTP Path", "category": "external", "description": "Declare an SFTP directory as an observable external asset.", "version": "1.0.0", "author": "Dagster Community", "path": "external_assets/external_sftp_path", "tags": [ "external", "sftp", "path" ], "dependencies": { "pip": [ "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_sftp_path/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_sftp_path/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_sftp_path/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_sftp_path/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_sftp_path/requirements.txt", "icon": "Link", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/external_assets.md", "last_validated": "2026-05-08" }, "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:sftp" ] }, { "id": "external_sharepoint_library", "name": "External SharePoint Library", "category": "external", "description": "Declare a SharePoint document library as an observable external asset.", "version": "1.0.0", "author": "Dagster Community", "path": "external_assets/external_sharepoint_library", "tags": [ "external", "sharepoint", "library" ], "dependencies": { "pip": [ "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_sharepoint_library/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_sharepoint_library/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_sharepoint_library/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_sharepoint_library/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_sharepoint_library/requirements.txt", "icon": "Link", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/external_assets.md", "last_validated": "2026-05-08" }, "vendor": "Microsoft", "produces": [ "asset" ], "agent_hints": {} }, { "id": "external_snowflake_openflow_flow", "name": "External Snowflake OpenFlow Flow Asset", "category": "external", "description": "Declare a Snowflake OpenFlow process group as an external Dagster asset. Pair with snowflake_openflow_status_sensor.", "path": "external_assets/external_snowflake_openflow_flow", "tags": [ "external", "snowflake", "openflow", "asset-spec" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_snowflake_openflow_flow/schema.json", "component_type": "dagster_community_components.ExternalSnowflakeOpenflowFlowAsset", "icon": "si:snowflake", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_snowflake_openflow_flow/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_snowflake_openflow_flow/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_snowflake_openflow_flow/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_snowflake_openflow_flow/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/snowflake_single_entity.md", "last_validated": "2026-05-22" }, "vendor": "Snowflake", "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [] }, "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:snowflake" ] }, { "id": "external_snowflake_table", "name": "External Snowflake Table", "category": "external", "description": "Declare a Snowflake table as an observable external asset.", "version": "1.0.0", "author": "Dagster Community", "path": "external_assets/external_snowflake_table", "tags": [ "external", "snowflake", "table" ], "dependencies": { "pip": [ "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_snowflake_table/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_snowflake_table/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_snowflake_table/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_snowflake_table/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_snowflake_table/requirements.txt", "icon": "si:snowflake", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/external_assets.md", "last_validated": "2026-05-08" }, "vendor": "Snowflake", "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:snowflake" ] }, { "id": "external_sql_asset", "name": "External SQL Asset", "category": "external", "description": "ExternalSqlAsset", "version": "1.0.0", "author": "Dagster Community", "path": "external_assets/external_sql_asset", "tags": [ "external", "sql", "asset" ], "dependencies": { "pip": [ "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_sql_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_sql_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_sql_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_sql_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_sql_asset/requirements.txt", "icon": "Link", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/external_assets.md", "last_validated": "2026-05-08" }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "external_sqs_asset", "name": "External SQS Asset", "category": "external", "description": "ExternalSqsAsset", "version": "1.0.0", "author": "Dagster Community", "path": "external_assets/external_sqs_asset", "tags": [ "external", "sqs", "asset" ], "dependencies": { "pip": [ "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_sqs_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_sqs_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_sqs_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_sqs_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_sqs_asset/requirements.txt", "icon": "Link", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/external_assets.md", "last_validated": "2026-05-08" }, "vendor": "AWS", "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:sqs" ] }, { "id": "external_starrocks_table", "name": "External StarRocks Table", "category": "external", "description": "Declare-only AssetSpec for a StarRocks table. Mirror of external_doris_table.", "path": "external_assets/external_starrocks_table", "tags": [ "external", "starrocks", "olap" ], "vendor": "StarRocks", "dependencies": { "pip": [] }, "version": "1.0.0", "author": "Dagster Community", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_starrocks_table/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_starrocks_table/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_starrocks_table/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_starrocks_table/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_starrocks_table/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-28", "evidence": "build_defs + Pydantic instantiation pass; awaiting customer pilot for live" }, "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:starrocks" ] }, { "id": "external_temporal_workflow", "name": "External Temporal Workflow", "vendor": "Temporal", "category": "external", "description": "Declare a Temporal Workflow as an external Dagster asset. Pair with temporal_workflow_sensor when Temporal owns the schedule.", "path": "external_assets/external_temporal_workflow", "tags": [ "temporal", "workflow", "external", "catalog" ], "icon": "si:temporal", "type": "dagster_community_components.ExternalTemporalWorkflowAsset", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_temporal_workflow/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_temporal_workflow/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_temporal_workflow/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_temporal_workflow/example.yaml", "component_type": "dagster_community_components.ExternalTemporalWorkflowAsset", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/temporal_workflow.md", "last_validated": "2026-07-02" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [] }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "external_vercel_deployment", "name": "External Vercel Deployment", "vendor": "Vercel", "category": "external", "description": "Declare a Vercel project's deployment stream as an external Dagster asset. Pair with vercel_deployment_sensor.", "path": "external_assets/external_vercel_deployment", "tags": [ "vercel", "deployment", "external", "catalog" ], "icon": "si:vercel", "type": "dagster_community_components.ExternalVercelDeploymentAsset", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_vercel_deployment/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_vercel_deployment/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_vercel_deployment/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/external_assets/external_vercel_deployment/example.yaml", "component_type": "dagster_community_components.ExternalVercelDeploymentAsset", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/vercel_deployment.md", "last_validated": "2026-07-02" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [] }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "fabric_capacity_admin_job", "name": "Fabric Capacity Admin Job", "category": "jobs", "description": "Pause / resume / scale a Microsoft Fabric capacity via the management REST API. Op-job \u2014 schedule it nightly + weekends to halve Fabric capacity spend.", "path": "jobs/fabric_capacity_admin_job", "tags": [ "job", "azure", "fabric", "infrastructure", "cost-control" ], "type": "dagster_component_templates.FabricCapacityAdminJobComponent", "component_type": "dagster_component_templates.FabricCapacityAdminJobComponent", "icon": "Power", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/fabric_capacity_admin_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/fabric_capacity_admin_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/fabric_capacity_admin_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/fabric_capacity_admin_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/fabric_capacity_admin_job/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Microsoft", "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "azure-identity", "requests" ] }, "produces": [ "job", "schedule" ], "agent_hints": {} }, { "id": "fabric_lakehouse_io_manager", "name": "Fabric Lakehouse IO Manager", "category": "io_manager", "description": "ConfigurableIOManager that auto-serializes asset DataFrames as Delta tables in a Fabric Lakehouse on OneLake. Asset key becomes the table name; tables auto-register in the Fabric SQL endpoint.", "path": "io_managers/fabric_lakehouse_io_manager", "tags": [ "io_manager", "azure", "fabric", "onelake", "delta", "dataframe" ], "type": "dagster_component_templates.FabricLakehouseIOManagerComponent", "component_type": "dagster_component_templates.FabricLakehouseIOManagerComponent", "icon": "Database", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/fabric_lakehouse_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/fabric_lakehouse_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/fabric_lakehouse_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/fabric_lakehouse_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/fabric_lakehouse_io_manager/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/fabric_full_stack.md", "last_validated": "2026-05-11" }, "vendor": "Microsoft", "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "deltalake" ] }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:fabric_lakehouse" ] }, { "id": "fabric_lakehouse_resource", "name": "Fabric Lakehouse Resource", "category": "resource", "description": "OneLake URL helper + storage credentials for Fabric Lakehouse access. Inject into ops that need to read/write Delta tables without re-deriving the abfss URL.", "path": "resources/fabric_lakehouse_resource", "tags": [ "resource", "azure", "fabric", "onelake", "delta" ], "type": "dagster_component_templates.FabricLakehouseResourceComponent", "component_type": "dagster_component_templates.FabricLakehouseResourceComponent", "icon": "Cylinder", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/fabric_lakehouse_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/fabric_lakehouse_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/fabric_lakehouse_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/fabric_lakehouse_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/fabric_lakehouse_resource/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/fabric_full_stack.md", "last_validated": "2026-05-11" }, "vendor": "Microsoft", "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster" ] }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:fabric_lakehouse" ] }, { "id": "fabric_pipeline_trigger_job", "name": "Fabric Pipeline Trigger Job", "category": "jobs", "description": "Op-job that triggers a Microsoft Fabric Data Pipeline / Notebook / Dataflow Gen2 run via the Fabric REST API. Pair with a schedule for periodic runs.", "path": "jobs/fabric_pipeline_trigger_job", "tags": [ "job", "azure", "fabric", "trigger" ], "type": "dagster_component_templates.FabricPipelineTriggerJobComponent", "component_type": "dagster_component_templates.FabricPipelineTriggerJobComponent", "icon": "Play", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/fabric_pipeline_trigger_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/fabric_pipeline_trigger_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/fabric_pipeline_trigger_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/fabric_pipeline_trigger_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/fabric_pipeline_trigger_job/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/fabric_full_stack.md", "last_validated": "2026-05-11" }, "vendor": "Microsoft", "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "azure-identity", "requests" ] }, "produces": [ "job", "schedule" ], "agent_hints": {} }, { "id": "fabric_workspace", "name": "Microsoft Fabric Workspace", "category": "integration", "description": "Import Microsoft Fabric workspace items (Lakehouse, Warehouse, Notebook, DataPipeline, Dataflow) as Dagster assets via the Fabric REST API.", "path": "integrations/fabric_workspace", "tags": [ "integration", "azure", "fabric", "microsoft" ], "type": "dagster_component_templates.FabricWorkspaceComponent", "component_type": "dagster_component_templates.FabricWorkspaceComponent", "icon": "si:microsoftazure", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/fabric_workspace/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/fabric_workspace/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/fabric_workspace/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/fabric_workspace/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/fabric_workspace/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/fabric_full_stack.md", "last_validated": "2026-05-11" }, "vendor": "Microsoft", "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "azure-identity", "requests" ] }, "produces": [ "multi_asset" ], "agent_hints": {} }, { "id": "fabric_workspace_resource", "name": "Fabric Workspace Resource", "category": "resource", "description": "Reusable Microsoft Fabric REST API client (token caching, list_items, trigger_item_run, wait_for_run helpers). Inject into custom ops that need ad-hoc Fabric API access.", "path": "resources/fabric_workspace_resource", "tags": [ "resource", "azure", "fabric", "api" ], "type": "dagster_component_templates.FabricWorkspaceResourceComponent", "component_type": "dagster_component_templates.FabricWorkspaceResourceComponent", "icon": "Plug", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/fabric_workspace_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/fabric_workspace_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/fabric_workspace_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/fabric_workspace_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/fabric_workspace_resource/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/fabric_full_stack.md", "last_validated": "2026-05-11" }, "vendor": "Microsoft", "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "azure-identity", "requests" ] }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "face_detector", "name": "Face Detector", "category": "ai", "description": "Detect faces in images and return bounding boxes, face count, and optional landmark positions.", "path": "assets/ai/face_detector", "tags": [ "ai", "image", "vision", "face-detection" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/face_detector/schema.json", "component_type": "dagster_component_templates.FaceDetectorComponent", "icon": "SmilePlus", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/face_detector/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/face_detector/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/face_detector/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/face_detector/requirements.txt", "validation": { "level": "live", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "opencv-python" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "facebook_ads_ingestion", "name": "Facebook Ads Ingestion", "category": "ingestion", "description": "Component for ingesting Facebook Ads data using dlt - returns DataFrames.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/facebook_ads_ingestion", "tags": [ "ingestion", "facebook", "ads" ], "dependencies": { "pip": [ "dlt[facebook_ads]>=0.4.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/facebook_ads_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/facebook_ads_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/facebook_ads_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/facebook_ads_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/facebook_ads_ingestion/requirements.txt", "icon": "si:facebook", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 hits vendor's REST API.", "outputs": "DataFrame with columns from Facebook / Meta Ads campaigns, ad sets, insights.", "side_effects": "Read-only. Requires Facebook / Meta Ads API credentials. Rate-limited per Facebook / Meta Ads's tier.", "anti_uses": "For generic REST APIs use rest_api_fetcher. For writing back to Facebook / Meta Ads use its dedicated writer (if available).", "requires_resources": [ "facebook_ads_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "facebook_ads_resource", "name": "Facebook Ads Resource", "category": "resource", "description": "Register a FacebookAdsResource wrapping the Facebook Business SDK for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/facebook_ads_resource", "tags": [ "resource", "facebook", "ads", "marketing" ], "dependencies": { "pip": [ "facebook-business" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/facebook_ads_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/facebook_ads_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/facebook_ads_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/facebook_ads_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/facebook_ads_resource/requirements.txt", "icon": "si:facebook", "x-dagster-provides": [ "facebook_ads_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "feast_asset", "name": "Feast Feature Store Asset", "category": "analytics", "description": "Materialize features from a source table into a Feast feature store.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/feast_asset", "tags": [ "analytics", "feast", "asset" ], "dependencies": { "pip": [ "feast" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/feast_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/feast_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/feast_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/feast_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/feast_asset/requirements.txt", "icon": "BarChart2", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "feature_scaler", "name": "Feature Scaler", "category": "transformation", "description": "Rescale numeric columns using standard, min-max, robust, or max-abs scaling.", "path": "assets/transforms/feature_scaler", "tags": [ "transformation", "feature_scaling", "feature_engineering", "ml", "preprocessing" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/feature_scaler/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/feature_scaler/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/feature_scaler/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/feature_scaler/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/feature_scaler/requirements.txt", "icon": "TrendingUp", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/iris_unsupervised.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with numeric feature columns.", "outputs": "Same DataFrame with scaled features (StandardScaler / MinMaxScaler / RobustScaler).", "side_effects": "Modifies values IN PLACE. Requires sklearn.", "anti_uses": "For outlier clipping use outlier_clipper. Not for imputation.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "numpy" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "fhir_resource_normalizer", "name": "Fhir Resource Normalizer", "category": "transformation", "description": "Flatten FHIR R4/R5 JSON resources into a flat DataFrame.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/fhir_resource_normalizer", "tags": [ "fhir-resource-normalizer", "transforms" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/fhir_resource_normalizer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/fhir_resource_normalizer/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/fhir_resource_normalizer/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/fhir_resource_normalizer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/fhir_resource_normalizer/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "field_mapper", "name": "Field Mapper", "category": "transformation", "description": "Rename or remap column names according to a mapping dictionary, with optional column filtering.", "path": "assets/transforms/field_mapper", "tags": [ "transformation", "documents", "rename", "mapping", "schema" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/field_mapper/schema.json", "component_type": "dagster_component_templates.FieldMapperComponent", "icon": "ArrowRightLeft", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/field_mapper/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/field_mapper/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/field_mapper/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/field_mapper/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/transformations.md", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "Any DataFrame + a source\u2192target column mapping config.", "outputs": "DataFrame with a new schema (columns renamed / dropped / transformed per map).", "side_effects": "Column set changes. Downstream references must use TARGET names.", "anti_uses": "For simple renames use dynamic_rename. For value transforms use formula.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "file_ingestion", "name": "File Ingestion", "category": "ingestion", "description": "Unified tabular-file ingestion \u2014 reads CSV / TSV / JSON / JSONL / Parquet / Excel into a pandas DataFrame. Three input modes: file_path (fixed local or fsspec URI s3://, gs://, az://), from_upstream (resolve from upstream asset's dict), or from_run_config (sensor-injected RunConfig with optional {partition_key} interpolation for dynamic-partition flows).", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/file_ingestion", "tags": [ "ingestion", "file", "csv", "tsv", "json", "parquet", "excel", "fsspec", "s3", "gcs", "adls", "dynamic-partitions" ], "dependencies": { "pip": [ "dagster", "pandas", "fsspec" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/file_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/file_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/file_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/file_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/file_ingestion/requirements.txt", "icon": "ArrowUpFromLine", "validation": { "level": "live", "evidence": "Validated end-to-end: format auto-detection (csv/tsv/json/jsonl/parquet/excel), from_upstream pattern reads movies.csv from archive_fetcher dict, from_run_config + dynamic_partition reads /tmp/fi_demo/movies.csv via partition key", "last_validated": "2026-05-13" }, "agent_hints": { "inputs": "None (root source) \u2014 reads a tabular file from URL or local path.", "outputs": "DataFrame with columns from the source file's header row.", "side_effects": "None on data (read-only). asset_name becomes the source asset for downstream chains.", "anti_uses": "Not for JSON APIs (use rest_api_fetcher). Not for Excel with multiple sheets unless you set sheet_name.", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "file_transformer", "name": "File Transformer", "category": "transformation", "description": "Component for transforming files between formats.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/file_transformer", "tags": [ "transformation", "file", "transformer" ], "dependencies": { "pip": [ "pandas>=2.0.0", "pyarrow>=10.0.0", "openpyxl>=3.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/file_transformer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/file_transformer/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/file_transformer/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/file_transformer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/file_transformer/requirements.txt", "icon": "Shuffle", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/transformations.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": {} }, { "id": "filesystem_monitor", "name": "Filesystem Monitor", "category": "sensor", "description": "Component for monitoring filesystem directories for new files.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/filesystem_monitor", "tags": [ "sensor", "filesystem", "monitor" ], "dependencies": { "pip": [] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/filesystem_monitor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/filesystem_monitor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/filesystem_monitor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/filesystem_monitor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/filesystem_monitor/requirements.txt", "icon": "Radar", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "sensor" ], "agent_hints": {} }, { "id": "filter", "name": "Filter", "category": "transformation", "description": "Filter rows from a DataFrame using a query condition.", "path": "assets/transforms/filter", "tags": [ "transformation", "filter" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/filter/schema.json", "component_type": "dagster_component_templates.FilterComponent", "icon": "Shuffle", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/filter/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/filter/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/filter/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/filter/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/cities_distance.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with columns referenced by the condition.", "outputs": "Same columns; fewer rows. Preserves column order and dtypes.", "side_effects": "Reduces row count; column set unchanged. If the condition matches 0 rows, the step succeeds but writes an EMPTY output \u2014 check upstream data values (case, whitespace, type) when this happens.", "anti_uses": "condition is a Python-style expression evaluated with pandas eval. Column names must exist in upstream. Value CASE matters: if `data_cleansing` with normalize_case=lower ran upstream, string values are now lowercase \u2014 use `condition: \"Survived == 'yes'\"` (not 'Yes'). For case-insensitive match, use `Survived.str.lower() == 'yes'`.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "find_replace", "name": "Find Replace", "category": "transformation", "description": "Look up values in one column against a reference DataFrame and replace with mapped values.", "path": "assets/transforms/find_replace", "tags": [ "transformation", "find", "replace" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/find_replace/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/find_replace/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/find_replace/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/find_replace/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/find_replace/requirements.txt", "icon": "Shuffle", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/transformations.md", "last_validated": "2026-05-14" }, "agent_hints": { "inputs": "DataFrame with string columns containing values to substitute.", "outputs": "Same DataFrame; values substituted per rules.", "side_effects": "Modifies values IN PLACE. Regex- or literal-mode per config.", "anti_uses": "For column dtype changes use type_coercer. For missing values use imputation.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "firebase_resource", "name": "Firebase Resource", "category": "resource", "description": "Register a Firebase Admin SDK resource (Firestore + Cloud Storage + Realtime Database) for use by other components.", "version": "1.0.0", "author": "Dagster Community", "path": "resources/firebase_resource", "tags": [ "resource", "firebase", "firestore", "storage", "gcp" ], "vendor": "Firebase", "dependencies": { "pip": [ "firebase-admin>=6.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/firebase_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/firebase_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/firebase_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/firebase_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/firebase_resource/requirements.txt", "component_type": "dagster_component_templates.FirebaseResourceComponent", "icon": "si:firebase", "x-dagster-provides": [ "firebase_resource" ], "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/firebase_emulator.md", "last_validated": "2026-07-07" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "firebase_storage_monitor", "name": "Firebase Storage Monitor", "category": "sensor", "description": "Watch a Firebase Storage bucket for new files; emit one RunRequest per new object.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/firebase_storage_monitor", "tags": [ "sensor", "firebase", "storage", "gcs", "monitor" ], "vendor": "Firebase", "dependencies": { "pip": [ "firebase-admin>=6.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/firebase_storage_monitor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/firebase_storage_monitor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/firebase_storage_monitor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/firebase_storage_monitor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/firebase_storage_monitor/requirements.txt", "component_type": "dagster_component_templates.FirebaseStorageMonitorComponent", "icon": "si:firebase", "validation": { "level": "code", "last_validated": "2026-07-06" }, "produces": [ "sensor" ], "agent_hints": {} }, { "id": "firestore_collection_ingestion", "name": "Firestore Collection Ingestion", "category": "ingestion", "description": "Read a Firestore collection (or subcollection) into a pandas DataFrame; supports where filters, order_by, and limit.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/firestore_collection_ingestion", "tags": [ "ingestion", "firebase", "firestore", "nosql" ], "vendor": "Firebase", "dependencies": { "pip": [ "firebase-admin>=6.0.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/firestore_collection_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/firestore_collection_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/firestore_collection_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/firestore_collection_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/firestore_collection_ingestion/requirements.txt", "component_type": "dagster_component_templates.FirestoreCollectionIngestionComponent", "icon": "si:firebase", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/firebase_emulator.md", "last_validated": "2026-07-07" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 reads a Firestore collection.", "outputs": "DataFrame with document fields as columns.", "side_effects": "Requires gcp_credentials + firestore_resource.", "requires_resources": [ "firestore_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:firestore" ] }, { "id": "firestore_reader", "name": "Firestore Reader", "category": "source", "description": "Component for reading documents from a Google Cloud Firestore collection.", "path": "assets/sources/firestore_reader", "tags": [ "source", "firestore", "reader" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/firestore_reader/schema.json", "component_type": "dagster_component_templates.FirestoreReaderComponent", "icon": "si:firebase", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/firestore_reader/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/firestore_reader/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/firestore_reader/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/firestore_reader/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/firestore_roundtrip.md", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "google-cloud-firestore" ] }, "agent_hints": { "inputs": "None (root source) \u2014 reads documents/records from Google Firestore.", "outputs": "DataFrame with columns from Google Firestore docs (nested fields may need dataframe_flatten_nested_columns downstream).", "side_effects": "Read-only. Requires firestore_resource.", "anti_uses": "For writing TO Google Firestore use its writer. For SQL DBs use dataframe_from_sql.", "requires_resources": [ "firestore_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ], "consumes": [ "resource:firestore" ] }, { "id": "firestore_reader_asset", "name": "FirestoreReaderAssetComponent", "category": "source", "description": "Read documents from a Firestore collection (or collection group) into a pandas DataFrame. Supports where filters, ordering, limit. The doc id lands in a `_id` column.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/source/firestore_reader_asset", "tags": [ "source", "google", "firestore", "nosql", "document-db" ], "dependencies": { "pip": [ "dagster>=1.8.0", "pandas>=1.5.0", "google-cloud-firestore>=2.13.0", "google-auth>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/firestore_reader_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/firestore_reader_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/firestore_reader_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/firestore_reader_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/firestore_reader_asset/requirements.txt", "component_type": "dagster_component_templates.FirestoreReaderAssetComponent", "validation": { "level": "live", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root source) \u2014 reads documents/records from Google Firestore.", "outputs": "DataFrame with columns from Google Firestore docs (nested fields may need dataframe_flatten_nested_columns downstream).", "side_effects": "Read-only. Requires firestore_resource.", "anti_uses": "For writing TO Google Firestore use its writer. For SQL DBs use dataframe_from_sql.", "requires_resources": [ "firestore_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:firestore" ] }, { "id": "firestore_resource", "name": "Google Firestore Resource", "category": "resource", "description": "Register a Google Cloud Firestore resource for serverless document database access", "version": "1.0.0", "author": "Dagster Community", "path": "resources/firestore_resource", "tags": [ "resource", "firestore", "gcp", "database", "nosql" ], "dependencies": { "pip": [ "google-cloud-firestore" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/firestore_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/firestore_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/firestore_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/firestore_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/firestore_resource/requirements.txt", "icon": "si:firebase", "x-dagster-provides": [ "firestore_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:firestore" ] }, { "id": "firestore_writer", "name": "Firestore Writer", "category": "sink", "description": "Write a DataFrame to a Google Cloud Firestore collection using batch writes with merge or overwrite support", "path": "assets/sinks/firestore_writer", "tags": [ "sink", "firestore", "gcp", "nosql", "document-database" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/firestore_writer/schema.json", "component_type": "dagster_component_templates.firestore_writer", "icon": "si:firebase", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/firestore_writer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/firestore_writer/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/firestore_writer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/firestore_writer/requirements.txt", "validation": { "level": "live", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes to Google Firestore).", "side_effects": "Writes to Google Firestore. Requires firestore_resource. Mode / write-disposition per config.", "anti_uses": "For local files use dataframe_to_parquet/csv/json.", "requires_resources": [ "firestore_resource" ], "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "google-cloud-firestore" ] }, "produces": [ "asset" ], "consumes": [ "resource:firestore" ] }, { "id": "firestore_writer_asset", "name": "FirestoreWriterAssetComponent", "category": "sink", "description": "Write DataFrame rows to a Firestore collection \u2014 one document per row. Set / merge / create write modes; doc id from a column or auto-generated. Useful as a real-time-readable sink behind ML scoring, customer 360, dynamic config tables.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/sinks/firestore_writer_asset", "tags": [ "sink", "google", "firestore", "nosql", "document-db", "real-time" ], "dependencies": { "pip": [ "dagster>=1.8.0", "pandas>=1.5.0", "google-cloud-firestore>=2.13.0", "google-auth>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/firestore_writer_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/firestore_writer_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/firestore_writer_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/firestore_writer_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/firestore_writer_asset/requirements.txt", "component_type": "dagster_component_templates.FirestoreWriterAssetComponent", "validation": { "level": "live", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes to Google Firestore).", "side_effects": "Writes to Google Firestore. Requires firestore_resource. Mode / write-disposition per config.", "anti_uses": "For local files use dataframe_to_parquet/csv/json.", "requires_resources": [ "firestore_resource" ], "input_type": "pd.DataFrame", "output_type": null }, "produces": [ "asset" ], "consumes": [ "resource:firestore" ] }, { "id": "fivetran_assets", "name": "FivetranAssets", "category": "integration", "description": "Import each Fivetran connector as a Dagster external asset via dagster-fivetran.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/fivetran_assets", "tags": [ "integration", "fivetran", "elt", "official" ], "dependencies": { "pip": [ "dagster", "dagster-fivetran" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/fivetran_assets/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/fivetran_assets/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/fivetran_assets/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/fivetran_assets/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/fivetran_assets/requirements.txt", "validation": { "level": "live", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "fivetran_sync_sensor", "name": "Fivetran Sync Sensor", "category": "sensor", "description": "Trigger a job when a Fivetran connector sync completes.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/fivetran_sync_sensor", "tags": [ "sensor", "fivetran", "sync" ], "dependencies": { "pip": [ "requests>=2.28.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/fivetran_sync_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/fivetran_sync_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/fivetran_sync_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/fivetran_sync_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/fivetran_sync_sensor/requirements.txt", "icon": "si:fivetran", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "sensor" ], "agent_hints": {} }, { "id": "fivetran_sync_trigger_job", "name": "FivetranSyncTriggerJobComponent", "category": "jobs", "description": "Trigger a Fivetran connector sync via REST API.", "version": "1.0.0", "author": "Dagster Community", "path": "jobs/fivetran_sync_trigger_job", "tags": [ "job", "fivetran", "trigger", "elt" ], "dependencies": { "pip": [ "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/fivetran_sync_trigger_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/fivetran_sync_trigger_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/fivetran_sync_trigger_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/fivetran_sync_trigger_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/fivetran_sync_trigger_job/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "job", "schedule" ], "agent_hints": {} }, { "id": "fix_message_parser", "name": "Fix Message Parser", "category": "transformation", "description": "Parse FIX trading-protocol messages into a flat DataFrame.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/fix_message_parser", "tags": [ "fix-message-parser", "transforms" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/fix_message_parser/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/fix_message_parser/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/fix_message_parser/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/fix_message_parser/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/fix_message_parser/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "formula", "name": "Formula", "category": "transformation", "description": "Create or update columns using pandas eval expressions.", "path": "assets/transforms/formula", "tags": [ "transformation", "formula" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/formula/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/formula/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/formula/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/formula/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/formula/requirements.txt", "icon": "Shuffle", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/arxiv_pdf.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with columns referenced in `expressions`.", "outputs": "DataFrame with NEW columns added per `expressions` mapping. Existing columns unchanged.", "side_effects": "Adds N new columns (one per expression key). Does NOT rename or remove source columns.", "anti_uses": "expressions is Dict[str, str] where each value is a pandas eval expression (e.g. `{month: order_date.dt.month}`, `{is_high: (total > 500).astype(int)}`). For conditionals use `np.where(cond, x, y)` OR `.astype(int)` on a boolean \u2014 NOT Python's `if/else` ternary (pandas.eval does not support it \u2014 it silently produces NaN). For type conversion use type_coercer.", "chains_with": "Common predecessor to summarize when a group_by key needs to be derived (month from timestamp, quarter from month, etc.).", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "freshdesk_ingestion", "name": "Freshdesk Ingestion", "category": "ingestion", "description": "Component for ingesting Freshdesk customer support data using dlt.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/freshdesk_ingestion", "tags": [ "ingestion", "freshdesk" ], "dependencies": { "pip": [ "dlt[freshdesk]>=0.4.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/freshdesk_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/freshdesk_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/freshdesk_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/freshdesk_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/freshdesk_ingestion/requirements.txt", "icon": "si:freshdesk", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 hits vendor's REST API.", "outputs": "DataFrame with columns from Freshdesk tickets, contacts, agents.", "side_effects": "Read-only. Requires Freshdesk API credentials. Rate-limited per Freshdesk's tier.", "anti_uses": "For generic REST APIs use rest_api_fetcher. For writing back to Freshdesk use its dedicated writer (if available).", "requires_resources": [ "freshdesk_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "freshdesk_resource", "name": "Freshdesk Resource", "category": "resource", "description": "Register a FreshdeskResource for the Freshdesk REST API for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/freshdesk_resource", "tags": [ "resource", "freshdesk", "support", "customer-service" ], "dependencies": { "pip": [ "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/freshdesk_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/freshdesk_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/freshdesk_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/freshdesk_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/freshdesk_resource/requirements.txt", "icon": "si:freshdesk", "x-dagster-provides": [ "freshdesk_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "freshness_check", "name": "Freshness Policy", "category": "check", "description": "Attach a Dagster FreshnessPolicy to an asset for continuous SLA monitoring.", "version": "1.0.0", "author": "Dagster Community", "path": "asset_checks/freshness_check", "tags": [ "check", "freshness" ], "dependencies": { "pip": [ "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/freshness_check/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/freshness_check/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/freshness_check/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/freshness_check/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/freshness_check/requirements.txt", "icon": "CheckCircle", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/data_quality.md", "last_validated": "2026-05-08" }, "produces": [ "asset_check" ], "agent_hints": {} }, { "id": "funnel_analysis", "name": "Funnel Analysis", "category": "analytics", "description": "Component that analyzes user progression through conversion funnels.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/funnel_analysis", "tags": [ "analytics", "funnel", "analysis" ], "dependencies": { "pip": [ "pandas>=1.5.0", "numpy>=1.24.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/funnel_analysis/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/funnel_analysis/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/funnel_analysis/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/funnel_analysis/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/funnel_analysis/requirements.txt", "icon": "BarChart2", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with event/step + user_id + timestamp columns.", "outputs": "DataFrame with per-step conversion counts + drop-off rates.", "side_effects": "Reduces to one row per funnel step." }, "produces": [ "asset" ] }, { "id": "fuzzy_match", "name": "Fuzzy Match", "category": "transformation", "description": "Find and optionally deduplicate rows with similar string values using fuzzy matching.", "path": "assets/transforms/fuzzy_match", "tags": [ "transformation", "fuzzy", "match" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/fuzzy_match/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/fuzzy_match/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/fuzzy_match/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/fuzzy_match/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/fuzzy_match/requirements.txt", "icon": "Shuffle", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/transformations.md", "last_validated": "2026-05-14" }, "agent_hints": { "inputs": "TWO DataFrames + a column to match approximately.", "outputs": "DataFrame with match candidates + similarity scores.", "side_effects": "Row expansion (each left row may have multiple candidate matches). Requires rapidfuzz.", "anti_uses": "For exact joins use dataframe_join. Cross-join semantics \u2014 expensive on large inputs.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "gamma_regression", "name": "GammaRegression", "category": "analytics", "description": "Fit a Gamma generalized linear model for positive continuous outcomes.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/gamma_regression", "tags": [ "analytics", "regression", "gamma", "glm" ], "dependencies": { "pip": [ "pandas", "statsmodels", "numpy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/gamma_regression/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/gamma_regression/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/gamma_regression/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/gamma_regression/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/gamma_regression/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with positive continuous target + feature columns.", "outputs": "DataFrame with fitted values / predictions.", "side_effects": "GLM for positive right-skewed data (durations, spend). Requires statsmodels.", "anti_uses": "For Poisson counts use count_regression. For general continuous regression use linear_regression_model.", "requires_pip": [ "statsmodels" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "gcp_audit_log_ingestion", "name": "GcpAuditLogIngestionComponent", "category": "ingestion", "description": "Pull GCP audit logs via the Cloud Logging API. Returns a DataFrame.", "version": "1.0.0", "author": "Dagster Community", "path": "ingestion/gcp_audit_log_ingestion", "tags": [ "gcp", "cloud-logging", "siem", "audit-log", "security" ], "dependencies": { "pip": [ "pandas", "google-cloud-logging" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/gcp_audit_log_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/gcp_audit_log_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/gcp_audit_log_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/gcp_audit_log_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/gcp_audit_log_ingestion/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Google", "agent_hints": { "inputs": "None (root ingestion) \u2014 reads audit log entries via API.", "outputs": "DataFrame of GCP Audit Logs audit events (actor, action, resource, timestamp, metadata).", "side_effects": "Read-only. Requires GCP Audit Logs admin credentials. Chunked / paginated per vendor's API.", "anti_uses": "For SIEM ingestion of the SAME logs into a SIEM, chain into audit_logs_to_ sinks downstream.", "requires_resources": [ "gcp_credentials" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "gcp_deployment_manager_asset", "name": "GcpDeploymentManagerAssetComponent", "category": "infrastructure", "description": "Deploy a GCP Deployment Manager configuration (.yaml or jinja) as a Dagster asset.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/infrastructure/gcp_deployment_manager_asset", "tags": [ "gcp", "deployment-manager", "iac", "infrastructure" ], "dependencies": { "pip": [ "google-cloud-deployment-manager", "google-auth" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/gcp_deployment_manager_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/gcp_deployment_manager_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/gcp_deployment_manager_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/gcp_deployment_manager_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/gcp_deployment_manager_asset/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/bicep_self_provision.md", "last_validated": "2026-05-06" }, "vendor": "Google", "produces": [ "asset" ], "agent_hints": {} }, { "id": "gcs_cleanup_job", "name": "GcsCleanupJobComponent", "category": "jobs", "description": "Delete GCS objects older than N days under a prefix.", "version": "1.0.0", "author": "Dagster Community", "path": "jobs/gcs_cleanup_job", "tags": [ "job", "gcp", "gcs", "cleanup", "retention" ], "dependencies": { "pip": [ "google-cloud-storage" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/gcs_cleanup_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/gcs_cleanup_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/gcs_cleanup_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/gcs_cleanup_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/gcs_cleanup_job/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Google", "produces": [ "job", "schedule" ], "agent_hints": {}, "consumes": [ "resource:gcs" ] }, { "id": "gcs_monitor", "name": "GCS Monitor", "category": "sensor", "description": "Component for monitoring a Google Cloud Storage bucket prefix for new objects.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/gcs_monitor", "tags": [ "sensor", "gcs", "monitor" ], "dependencies": { "pip": [ "google-cloud-storage>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/gcs_monitor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/gcs_monitor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/gcs_monitor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/gcs_monitor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/gcs_monitor/requirements.txt", "icon": "si:googlecloud", "validation": { "level": "live", "last_validated": "2026-05-19", "evidence": "s3_pipeline.md" }, "vendor": "Google", "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:gcs" ] }, { "id": "gcs_observation_sensor", "name": "GCS Observation Sensor", "category": "observation", "description": "GcsObservationSensorComponent", "version": "1.0.0", "author": "Dagster Community", "path": "observations/gcs_observation_sensor", "tags": [ "observation", "gcs", "sensor" ], "dependencies": { "pip": [ "google-cloud-storage>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/gcs_observation_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/gcs_observation_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/gcs_observation_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/gcs_observation_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/gcs_observation_sensor/requirements.txt", "icon": "si:googlecloud", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Google", "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:gcs" ] }, { "id": "gcs_parquet_io_manager", "name": "GCS Parquet IO Manager", "category": "io_manager", "description": "Register an IO manager that stores assets as Parquet files on Google Cloud Storage", "version": "0.1.0", "author": "Dagster Labs", "path": "io_managers/gcs_parquet_io_manager", "tags": [ "io_manager", "gcs", "gcp", "google", "parquet", "object-storage" ], "dependencies": { "pip": [ "gcsfs>=2023.1.0", "pandas>=1.5.0", "pyarrow>=12.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/gcs_parquet_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/gcs_parquet_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/gcs_parquet_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/gcs_parquet_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/gcs_parquet_io_manager/requirements.txt", "icon": "si:googlecloudstorage", "x-dagster-provides": [ "io_manager" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Google", "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:gcs" ] }, { "id": "gcs_resource", "name": "GCS Resource", "category": "resource", "description": "Register a dagster-gcp GCSResource for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/gcs_resource", "tags": [ "resource", "gcp", "gcs" ], "dependencies": { "pip": [ "dagster-gcp" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/gcs_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/gcs_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/gcs_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/gcs_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/gcs_resource/requirements.txt", "icon": "si:googlecloudstorage", "x-dagster-provides": [ "gcs_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Google", "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:gcs" ] }, { "id": "gcs_to_database_asset", "name": "GCS to Database", "category": "ingestion", "description": "Read a file from GCS and write it to a database table.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/gcs_to_database_asset", "tags": [ "ingestion", "gcs", "database", "asset" ], "dependencies": { "pip": [ "google-cloud-storage>=2.0.0", "pandas>=1.3.0", "sqlalchemy>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/gcs_to_database_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/gcs_to_database_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/gcs_to_database_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/gcs_to_database_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/gcs_to_database_asset/requirements.txt", "icon": "si:googlecloud", "validation": { "level": "live", "last_validated": "2026-05-11" }, "vendor": "Google", "agent_hints": { "inputs": "None (root ingestion) \u2014 reads GCS objects, writes to DB.", "outputs": "None (sink-like).", "side_effects": "Requires gcp_credentials + database_connection.", "requires_resources": [ "gcp_credentials", "database_connection" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:gcs" ] }, { "id": "gemini_agent", "name": "Gemini Agent", "category": "ai", "description": "Single-shot LLM agent with Model Context Protocol (MCP) tool support, using the Google Gen AI SDK directly (no LiteLLM dep). Defaults thinking_budget=0 to avoid truncation; raise explicitly for multi-step reasoning per turn.", "path": "assets/ai/gemini_agent", "tags": [ "ai", "llm", "agent", "mcp", "tool-use", "gemini", "google", "agentic" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/gemini_agent/schema.json", "component_type": "dagster_component_templates.GeminiAgentComponent", "icon": "si:googlegemini", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/gemini_agent/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/gemini_agent/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/gemini_agent/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/gemini_agent/requirements.txt", "validation": { "level": "code", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/litellm_agent.md", "last_validated": "2026-06-04" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "google-genai", "mcp" ] }, "produces": [ "asset" ], "agent_hints": { "output_type": "pd.DataFrame" }, "consumes": [ "resource:gemini" ] }, { "id": "gemini_image_generation", "name": "GeminiImageGenerationComponent", "category": "ai", "description": "Native (no-LiteLLM) image generation / edit per DataFrame row using Google's Gemini 2.5 Flash Image \u2014 the model the community nicknames 'Nano Banana'. Default: gemini-2.5-flash-image-preview. Supports text-to-image and image-to-image editing. For multi-vendor workflows, use litellm_image_generation instead.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/gemini_image_generation", "tags": [ "ai", "image", "image-generation", "gemini", "google", "nano-banana", "image-edit", "vision" ], "dependencies": { "pip": [ "dagster>=1.8.0", "pandas>=1.5.0", "google-genai>=0.3.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/gemini_image_generation/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/gemini_image_generation/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/gemini_image_generation/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/gemini_image_generation/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/gemini_image_generation/requirements.txt", "component_type": "dagster_component_templates.GeminiImageGenerationComponent", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/nano_banana.md", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "consumes": [ "resource:gemini" ] }, { "id": "gemini_llm", "name": "GeminiLLMComponent", "category": "ai", "description": "Native (no-LiteLLM) per-row text generation with Google Gemini text models (gemini-2.5-flash, gemini-2.5-pro, gemini-2.0-flash-lite, etc.). Drop-in peer of openai_llm / anthropic_llm \u2014 same field shape so providers swap by changing `type:` and the api_key env var. For multi-vendor workflows use litellm_inference_asset.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/gemini_llm", "tags": [ "ai", "llm", "text-generation", "gemini", "google", "completion", "summarization", "classification" ], "dependencies": { "pip": [ "dagster>=1.8.0", "pandas>=1.5.0", "google-genai>=0.3.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/gemini_llm/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/gemini_llm/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/gemini_llm/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/gemini_llm/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/gemini_llm/requirements.txt", "component_type": "dagster_component_templates.GeminiLLMComponent", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/gemini_llm.md", "last_validated": "2026-05-08" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "consumes": [ "resource:gemini" ] }, { "id": "gemini_resource", "name": "Google Gemini Resource", "category": "resource", "description": "Register a dagster-gemini GeminiResource for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/gemini_resource", "tags": [ "resource", "gemini", "google", "llm", "ai" ], "dependencies": { "pip": [ "dagster-gemini" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/gemini_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/gemini_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/gemini_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/gemini_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/gemini_resource/requirements.txt", "icon": "si:googlegemini", "x-dagster-provides": [ "gemini_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:gemini" ] }, { "id": "generate_rows", "name": "Generate Rows", "category": "transformation", "description": "Expand a DataFrame by repeating, appending, or cross-joining rows.", "path": "assets/transforms/generate_rows", "tags": [ "transformation", "generate", "rows" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/generate_rows/schema.json", "component_type": "dagster_component_templates.GenerateRowsComponent", "icon": "Shuffle", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/generate_rows/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/generate_rows/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/generate_rows/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/generate_rows/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/transformations.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "Any DataFrame (or none, if generating from scratch per config).", "outputs": "DataFrame with N synthetic rows appended (or replacing).", "side_effects": "Row count increases. For test-data generation.", "anti_uses": "For realistic synthetic data (customer/orders schemas) use synthetic_data_generator instead.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "geo_buffer", "name": "Geo Buffer", "category": "transformation", "description": "Expand each geometry by a distance, producing a polygon buffer. Drop-in for Alteryx's Buffer and Trade Area tools. Projects to Web Mercator before buffering so distance units are meters / km / miles, not degrees.", "path": "assets/transforms/geo_buffer", "tags": [ "spatial", "geo", "geopandas", "shapely", "buffer", "trade_area", "alteryx" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/geo_buffer/schema.json", "component_type": "dagster_component_templates.GeoBufferComponent", "icon": "Circle", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/geo_buffer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/geo_buffer/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/geo_buffer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/geo_buffer/requirements.txt", "validation": { "level": "code", "last_validated": "2026-06-05" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "geopandas", "shapely", "pyproj" ] }, "agent_hints": { "inputs": "DataFrame with a geometry column (shapely / geopandas).", "outputs": "DataFrame with a new column with buffered polygons around each geometry.", "side_effects": "Requires shapely + geopandas.", "anti_uses": "For lat/lon columns use points_from_latlon first to construct geometry.", "requires_pip": [ "shapely", "geopandas" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "geo_overlay", "name": "Geo Overlay", "category": "transformation", "description": "Combine two geometry DataFrames using set-theoretic spatial operations (intersection / union / difference / symmetric_difference / identity). Drop-in for Alteryx's Spatial Process tool.", "path": "assets/transforms/geo_overlay", "tags": [ "spatial", "geo", "geopandas", "overlay", "intersection", "union", "alteryx" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/geo_overlay/schema.json", "component_type": "dagster_component_templates.GeoOverlayComponent", "icon": "Layers", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/geo_overlay/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/geo_overlay/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/geo_overlay/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/geo_overlay/requirements.txt", "validation": { "level": "code", "last_validated": "2026-06-05" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "geopandas", "shapely" ] }, "agent_hints": { "inputs": "DataFrame with a geometry column (shapely / geopandas).", "outputs": "DataFrame with polygon overlay results (intersection / union / difference).", "side_effects": "Requires shapely + geopandas.", "anti_uses": "For lat/lon columns use points_from_latlon first to construct geometry.", "requires_pip": [ "shapely", "geopandas" ] }, "produces": [ "asset" ] }, { "id": "geo_simplify", "name": "Geo Simplify", "category": "transformation", "description": "Reduce vertex count of each geometry via Shapely Douglas-Peucker simplification. Drop-in for Alteryx's Generalize tool. Useful for shrinking tile sizes or speeding up downstream spatial joins.", "path": "assets/transforms/geo_simplify", "tags": [ "spatial", "geo", "shapely", "simplify", "generalize", "alteryx" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/geo_simplify/schema.json", "component_type": "dagster_component_templates.GeoSimplifyComponent", "icon": "Minimize2", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/geo_simplify/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/geo_simplify/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/geo_simplify/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/geo_simplify/requirements.txt", "validation": { "level": "code", "last_validated": "2026-06-05" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "geopandas", "shapely" ] }, "agent_hints": { "inputs": "DataFrame with a geometry column (shapely / geopandas).", "outputs": "DataFrame with simplified geometry (fewer vertices for lighter rendering).", "side_effects": "Requires shapely + geopandas.", "anti_uses": "For lat/lon columns use points_from_latlon first to construct geometry.", "requires_pip": [ "shapely", "geopandas" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "geocoder", "name": "Geocoder", "category": "analytics", "description": "Component for geocoding addresses to latitude/longitude coordinates.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/geocoder", "tags": [ "analytics", "geocoder" ], "dependencies": { "pip": [ "pandas>=1.5.0", "geopy>=2.3.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/geocoder/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/geocoder/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/geocoder/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/geocoder/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/geocoder/requirements.txt", "icon": "BarChart2", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with address strings.", "outputs": "DataFrame + lat/lon columns.", "side_effects": "Requires an external geocoding API (Nominatim, Google, etc.). Rate-limited.", "anti_uses": "For reverse (coords \u2192 address) use reverse_geocoder.", "requires_pip": [ "geopy" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ] }, { "id": "github_audit_log_ingestion", "name": "GithubAuditLogIngestionComponent", "category": "ingestion", "description": "Pull GitHub Enterprise / Org audit log via /orgs/:org/audit-log.", "version": "1.0.0", "author": "Dagster Community", "path": "ingestion/github_audit_log_ingestion", "tags": [ "github", "siem", "audit-log", "vcs", "security" ], "dependencies": { "pip": [ "pandas", "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/github_audit_log_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/github_audit_log_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/github_audit_log_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/github_audit_log_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/github_audit_log_ingestion/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 reads audit log entries via API.", "outputs": "DataFrame of GitHub audit log audit events (actor, action, resource, timestamp, metadata).", "side_effects": "Read-only. Requires GitHub audit log admin credentials. Chunked / paginated per vendor's API.", "anti_uses": "For SIEM ingestion of the SAME logs into a SIEM, chain into audit_logs_to_ sinks downstream.", "requires_resources": [ "github_token" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:github" ] }, { "id": "github_event_sensor", "name": "GithubEventSensor", "category": "sensor", "description": "Trigger a run when a GitHub repo has new events (PRs opened/merged, pushes, issues).", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/github_event_sensor", "tags": [ "sensor", "github", "vcs", "ci" ], "dependencies": { "pip": [ "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/github_event_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/github_event_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/github_event_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/github_event_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/github_event_sensor/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:github" ] }, { "id": "github_ingestion", "name": "GitHub Ingestion", "category": "ingestion", "description": "Component for ingesting GitHub repository data using dlt.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/github_ingestion", "tags": [ "ingestion", "github" ], "dependencies": { "pip": [ "dlt[github]>=0.4.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/github_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/github_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/github_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/github_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/github_ingestion/requirements.txt", "icon": "si:github", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 reads GitHub data (repos, issues, PRs, commits) via API.", "outputs": "DataFrame with columns per entity type.", "side_effects": "Requires GITHUB_TOKEN env var. Rate-limited (5000 req/hour).", "requires_resources": [ "github_token" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:github" ] }, { "id": "github_resource", "name": "GitHub Resource", "category": "resource", "description": "Register a dagster-github GithubResource for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/github_resource", "tags": [ "resource", "github", "vcs", "devops" ], "dependencies": { "pip": [ "dagster-github" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/github_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/github_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/github_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/github_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/github_resource/requirements.txt", "icon": "si:github", "x-dagster-provides": [ "github_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:github" ] }, { "id": "gitlab_event_sensor", "name": "GitlabEventSensor", "category": "sensor", "description": "Trigger a run when a GitLab project has new events (push, merge, issue, comment).", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/gitlab_event_sensor", "tags": [ "sensor", "gitlab", "vcs", "ci" ], "dependencies": { "pip": [ "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/gitlab_event_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/gitlab_event_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/gitlab_event_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/gitlab_event_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/gitlab_event_sensor/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:gitlab" ] }, { "id": "gong_call_summary_asset", "name": "Gong Call Summary Asset", "category": "ai", "description": "Summarize Gong call transcripts into short summaries + action items using an OpenAI-compatible LLM.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/gong_call_summary_asset", "vendor": "Gong", "tags": [ "ai", "gong", "llm", "summarization", "sales", "conversation-intelligence" ], "dependencies": { "pip": [ "openai>=1.0.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/gong_call_summary_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/gong_call_summary_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/gong_call_summary_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/gong_call_summary_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/gong_call_summary_asset/requirements.txt", "component_type": "dagster_community_components.GongCallSummaryAssetComponent", "icon": "si:gong", "validation": { "level": "code", "last_validated": "2026-07-06" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "gong_calls_ingestion", "name": "Gong Calls Ingestion", "category": "ingestion", "description": "Ingest Gong call metadata and transcripts via Gong API v2 and return a pandas DataFrame.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/gong_calls_ingestion", "vendor": "Gong", "tags": [ "ingestion", "gong", "sales", "revenue", "conversation-intelligence" ], "dependencies": { "pip": [ "requests>=2.28", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/gong_calls_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/gong_calls_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/gong_calls_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/gong_calls_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/gong_calls_ingestion/requirements.txt", "component_type": "dagster_community_components.GongCallsIngestionComponent", "icon": "si:gong", "validation": { "level": "code", "last_validated": "2026-07-06" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 hits vendor's REST API.", "outputs": "DataFrame with columns from Gong call recordings, transcripts, participants.", "side_effects": "Read-only. Requires Gong API credentials. Rate-limited per Gong's tier.", "anti_uses": "For generic REST APIs use rest_api_fetcher. For writing back to Gong use its dedicated writer (if available).", "requires_resources": [ "gong_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "gong_resource", "name": "Gong Resource", "category": "resource", "description": "Register a GongResource wrapping Gong API v2 Basic Auth credentials for use by other components.", "version": "1.0.0", "author": "Dagster Community", "path": "resources/gong_resource", "vendor": "Gong", "tags": [ "resource", "gong", "sales", "revenue", "conversation-intelligence" ], "dependencies": { "pip": [ "requests>=2.28" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/gong_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/gong_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/gong_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/gong_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/gong_resource/requirements.txt", "component_type": "dagster_community_components.GongResourceComponent", "icon": "si:gong", "x-dagster-provides": [ "gong_resource" ], "validation": { "level": "code", "last_validated": "2026-07-06" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "google_ads_ingestion", "name": "Google Ads Ingestion", "category": "ingestion", "description": "Component for ingesting Google Ads data using dlt - returns DataFrames.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/google_ads_ingestion", "tags": [ "ingestion", "google", "ads" ], "dependencies": { "pip": [ "dlt[google_ads]>=0.4.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_ads_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_ads_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_ads_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_ads_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_ads_ingestion/requirements.txt", "icon": "ArrowUpFromLine", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 hits vendor's REST API.", "outputs": "DataFrame with columns from Google Ads campaigns, ad groups, metrics.", "side_effects": "Read-only. Requires Google Ads API credentials. Rate-limited per Google Ads's tier.", "anti_uses": "For generic REST APIs use rest_api_fetcher. For writing back to Google Ads use its dedicated writer (if available).", "requires_resources": [ "google_ads_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "google_analytics_ingestion", "name": "Google Analytics 4 Ingestion", "category": "ingestion", "description": "Component for ingesting Google Analytics 4 data using dlt - returns DataFrames.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/google_analytics_ingestion", "tags": [ "ingestion", "google", "analytics" ], "dependencies": { "pip": [ "dlt[google_analytics]>=0.4.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_analytics_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_analytics_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_analytics_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_analytics_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_analytics_ingestion/requirements.txt", "icon": "si:googleanalytics", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 hits vendor's REST API.", "outputs": "DataFrame with columns from Google Analytics 4 events, sessions, users, page views.", "side_effects": "Read-only. Requires Google Analytics 4 API credentials. Rate-limited per Google Analytics 4's tier.", "anti_uses": "For generic REST APIs use rest_api_fetcher. For writing back to Google Analytics 4 use its dedicated writer (if available).", "requires_resources": [ "gcp_credentials" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "google_analytics_resource", "name": "Google Analytics Resource", "category": "resource", "description": "Register a GoogleAnalyticsResource wrapping the GA4 Data API client for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/google_analytics_resource", "tags": [ "resource", "google", "analytics", "ga4" ], "dependencies": { "pip": [ "google-analytics-data" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/google_analytics_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/google_analytics_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/google_analytics_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/google_analytics_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/google_analytics_resource/requirements.txt", "icon": "si:googleanalytics", "x-dagster-provides": [ "google_analytics_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "google_bigquery", "name": "Google Bigquery", "category": "integration", "description": "Component for importing BigQuery entities as Dagster assets.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/google_bigquery", "tags": [ "integration", "google", "bigquery" ], "dependencies": { "pip": [ "google-cloud-bigquery", "google-cloud-bigquery-datatransfer", "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_bigquery/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_bigquery/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_bigquery/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_bigquery/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_bigquery/requirements.txt", "icon": "si:googlebigquery", "validation": { "level": "live", "last_validated": "2026-05-11" }, "vendor": "Google", "produces": [ "asset", "sensor" ], "agent_hints": {}, "consumes": [ "resource:bigquery" ] }, { "id": "google_calendar_ingestion", "name": "GoogleCalendarIngestionComponent", "category": "ingestion", "description": "List events from a Google Calendar via a service account. Returns one row per event in the configured time window with summary, time, location, organizer, attendees, html_link.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/google_calendar_ingestion", "tags": [ "ingestion", "google", "calendar", "events", "scheduling" ], "dependencies": { "pip": [ "dagster>=1.8.0", "pandas>=1.5.0", "google-auth>=2.0.0", "google-api-python-client>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_calendar_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_calendar_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_calendar_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_calendar_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_calendar_ingestion/requirements.txt", "component_type": "dagster_component_templates.GoogleCalendarIngestionComponent", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/google_calendar.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 hits vendor's REST API.", "outputs": "DataFrame with columns from Google Calendar events, calendars, attendees.", "side_effects": "Read-only. Requires Google Calendar API credentials. Rate-limited per Google Calendar's tier.", "anti_uses": "For generic REST APIs use rest_api_fetcher. For writing back to Google Calendar use its dedicated writer (if available).", "requires_resources": [ "gcp_credentials" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:google_calendar" ] }, { "id": "google_cloud_functions", "name": "Google Cloud Functions", "category": "integration", "description": "Component for importing Google Cloud Functions as Dagster assets.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/google_cloud_functions", "tags": [ "integration", "google", "cloud", "functions" ], "dependencies": { "pip": [ "google-cloud-functions", "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_cloud_functions/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_cloud_functions/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_cloud_functions/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_cloud_functions/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_cloud_functions/requirements.txt", "icon": "si:googlecloud", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:cloud_functions" ] }, { "id": "google_cloud_run_jobs", "name": "Google Cloud Run Jobs", "category": "integration", "description": "Component for importing Google Cloud Run Jobs as Dagster assets.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/google_cloud_run_jobs", "tags": [ "integration", "google", "cloud", "run", "jobs" ], "dependencies": { "pip": [ "google-cloud-run", "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_cloud_run_jobs/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_cloud_run_jobs/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_cloud_run_jobs/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_cloud_run_jobs/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_cloud_run_jobs/requirements.txt", "icon": "si:googlecloud", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:cloud_run" ] }, { "id": "google_dataflow", "name": "Google Dataflow", "category": "integration", "description": "Component for importing Google Cloud Dataflow jobs as Dagster assets.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/google_dataflow", "tags": [ "integration", "google", "dataflow" ], "dependencies": { "pip": [ "google-cloud-dataflow-client", "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_dataflow/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_dataflow/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_dataflow/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_dataflow/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_dataflow/requirements.txt", "icon": "Plug", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "asset", "sensor" ], "agent_hints": {} }, { "id": "google_datastream", "name": "Google Datastream", "category": "integration", "description": "Component for importing Google Cloud Datastream entities as Dagster assets.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/google_datastream", "tags": [ "integration", "google", "datastream" ], "dependencies": { "pip": [ "google-cloud-datastream", "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_datastream/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_datastream/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_datastream/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_datastream/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_datastream/requirements.txt", "icon": "Plug", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "asset", "sensor" ], "agent_hints": {} }, { "id": "google_docs_extractor", "name": "GoogleDocsExtractorComponent", "category": "ingestion", "description": "Extract plain text + headings from Google Docs by ID via a service account. Works with explicit doc_ids OR upstream of google_drive_ingestion (filter Drive to application/vnd.google-apps.document, feed IDs here).", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/google_docs_extractor", "tags": [ "ingestion", "google", "docs", "documents", "text-extraction", "rag" ], "dependencies": { "pip": [ "dagster>=1.8.0", "pandas>=1.5.0", "google-auth>=2.0.0", "google-api-python-client>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_docs_extractor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_docs_extractor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_docs_extractor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_docs_extractor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_docs_extractor/requirements.txt", "component_type": "dagster_component_templates.GoogleDocsExtractorComponent", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/google_drive_docs.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 extracts text content from Google Docs.", "outputs": "DataFrame with doc_id, title, extracted_text, and doc-structure columns.", "side_effects": "Requires gcp_credentials with Docs API scope.", "anti_uses": "For file metadata only use google_drive_ingestion. For PDFs use document_ingestion.", "requires_resources": [ "gcp_credentials" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:google_docs" ] }, { "id": "google_drive_ingestion", "name": "GoogleDriveIngestionComponent", "category": "ingestion", "description": "List (and optionally download) Google Drive files via a service account. Returns a pandas DataFrame, one row per matching file. For Google Sheets use google_sheets_ingestion; for Google Docs text use google_docs_extractor.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/google_drive_ingestion", "tags": [ "ingestion", "google", "drive", "files", "documents", "pdf" ], "dependencies": { "pip": [ "dagster>=1.8.0", "pandas>=1.5.0", "google-auth>=2.0.0", "google-api-python-client>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_drive_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_drive_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_drive_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_drive_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_drive_ingestion/requirements.txt", "component_type": "dagster_component_templates.GoogleDriveIngestionComponent", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/google_drive_docs.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 hits vendor's REST API.", "outputs": "DataFrame with columns from Google Drive files + metadata (name, mime, owners, sharing).", "side_effects": "Read-only. Requires Google Drive API credentials. Rate-limited per Google Drive's tier.", "anti_uses": "For generic REST APIs use rest_api_fetcher. For writing back to Google Drive use its dedicated writer (if available).", "requires_resources": [ "gcp_credentials" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:google_drive" ] }, { "id": "google_pubsub", "name": "Google Pubsub", "category": "integration", "description": "Component for importing Google Cloud Pub/Sub entities as Dagster assets.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/google_pubsub", "tags": [ "integration", "google", "pubsub" ], "dependencies": { "pip": [ "google-cloud-pubsub", "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_pubsub/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_pubsub/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_pubsub/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_pubsub/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_pubsub/requirements.txt", "icon": "si:googlepubsub", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Google", "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:pubsub" ] }, { "id": "google_sheets_ingestion", "name": "Google Sheets Ingestion", "category": "ingestion", "description": "Component for ingesting Google Sheets data using dlt.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/google_sheets_ingestion", "tags": [ "ingestion", "google", "sheets" ], "dependencies": { "pip": [ "dlt[google_sheets]>=0.4.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_sheets_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_sheets_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_sheets_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_sheets_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/google_sheets_ingestion/requirements.txt", "icon": "ArrowUpFromLine", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/google_sheets.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 reads a Google Sheet.", "outputs": "DataFrame with columns from the sheet's header row.", "side_effects": "Requires gcp_credentials with Sheets API scope. Read-only.", "requires_resources": [ "gcp_credentials" ], "output_type": "pd.DataFrame" }, "produces": [ "asset", "resource" ] }, { "id": "google_sheets_resource", "name": "Google Sheets Resource", "category": "resource", "description": "Register a GoogleSheetsResource wrapping the gspread client for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/google_sheets_resource", "tags": [ "resource", "google", "sheets", "spreadsheet" ], "dependencies": { "pip": [ "gspread" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/google_sheets_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/google_sheets_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/google_sheets_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/google_sheets_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/google_sheets_resource/requirements.txt", "icon": "si:googlesheets", "x-dagster-provides": [ "google_sheets_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "google_vertex_ai", "name": "Google Vertex Ai", "category": "integration", "description": "Component for importing Google Vertex AI entities as Dagster assets.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/google_vertex_ai", "tags": [ "integration", "google", "vertex" ], "dependencies": { "pip": [ "google-cloud-aiplatform", "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_vertex_ai/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_vertex_ai/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_vertex_ai/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_vertex_ai/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_vertex_ai/requirements.txt", "icon": "Plug", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Google", "produces": [ "asset", "sensor" ], "agent_hints": {}, "consumes": [ "resource:vertex_ai" ] }, { "id": "gradient_boosting_model", "name": "Gradient Boosting Model", "category": "analytics", "description": "Fit a gradient boosting model and output predictions or feature importance.", "path": "assets/analytics/gradient_boosting_model", "tags": [ "analytics", "gradient", "boosting", "model" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/gradient_boosting_model/schema.json", "component_type": "dagster_component_templates.GradientBoostingModelComponent", "icon": "BarChart2", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/gradient_boosting_model/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/gradient_boosting_model/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/gradient_boosting_model/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/gradient_boosting_model/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with numeric feature columns + target column.", "outputs": "DataFrame with predictions + probabilities.", "side_effects": "Slower to fit than decision_tree_model but usually higher accuracy. Requires sklearn (or xgboost/lightgbm if configured).", "anti_uses": "For simple baselines use logistic/linear_regression_model. For very large data prefer distributed frameworks.", "requires_pip": [ "sklearn" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "scikit-learn" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "graphql_asset", "name": "GraphQL Asset", "category": "ingestion", "description": "Execute GraphQL queries and write results to a database.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/graphql_asset", "tags": [ "ingestion", "graphql", "asset" ], "dependencies": { "pip": [ "requests", "pandas", "sqlalchemy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/graphql_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/graphql_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/graphql_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/graphql_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/graphql_asset/requirements.txt", "icon": "ArrowUpFromLine", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 hits a GraphQL endpoint.", "outputs": "DataFrame from the query result (flattened per config).", "side_effects": "Requires endpoint URL + auth headers.", "anti_uses": "For REST APIs use rest_api_fetcher. For OpenAPI use openapi_asset.", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "great_expectations_check", "name": "Great Expectations Check", "category": "check", "description": "Run a Great Expectations expectation suite \u2014 one Dagster asset check per expectation.", "version": "1.0.0", "author": "Dagster Community", "path": "asset_checks/great_expectations_check", "tags": [ "check", "great", "expectations" ], "dependencies": { "pip": [ "great-expectations>=0.18.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/great_expectations_check/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/great_expectations_check/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/great_expectations_check/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/great_expectations_check/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/great_expectations_check/requirements.txt", "icon": "CheckCircle", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/data_quality.md", "last_validated": "2026-05-08" }, "produces": [ "asset_check" ], "agent_hints": {} }, { "id": "groq_llm", "name": "GroqLLMComponent", "category": "ai", "description": "Native Groq LLM inference via the OpenAI-compatible Groq API. Drop-in peer of openai_llm / anthropic_llm / gemini_llm. Groq is uniquely fast \u2014 500+ tokens/sec on Llama-3.x / Mixtral / Gemma / DeepSeek-R1, generous free tier (no card required).", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/groq_llm", "tags": [ "ai", "llm", "groq", "fast-inference", "llama", "mixtral", "gemma", "deepseek", "agentic" ], "dependencies": { "pip": [ "dagster>=1.8.0", "pandas>=1.5.0", "openai>=1.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/groq_llm/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/groq_llm/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/groq_llm/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/groq_llm/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/groq_llm/requirements.txt", "component_type": "dagster_component_templates.GroqLLMComponent", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "consumes": [ "resource:groq" ] }, { "id": "hash", "name": "HashComponent", "category": "transformation", "description": "Compute MD5/SHA-1/SHA-256 of one or more columns (or the whole row) \u2014 useful for change detection, anonymization, surrogate keys.", "version": "1.0.0", "author": "Dagster Community", "path": "transforms/hash", "tags": [ "hash", "md5", "sha256", "checksum" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/hash/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/hash/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/hash/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/hash/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/hash/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/transformations.md", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "DataFrame with columns to hash.", "outputs": "Same DataFrame + a NEW hash column (or replacing per config).", "side_effects": "Adds column with a stable hash of the referenced columns. Useful for surrogate keys / dedup identity.", "anti_uses": "For unique constraints use surrogate_key (more explicit). For hashing PII use data_masking." }, "produces": [ "asset" ] }, { "id": "hashicorp_vault", "name": "HashiCorp Vault", "category": "infrastructure", "description": "Dagster resource for reading secrets from a HashiCorp Vault cluster.", "path": "assets/infrastructure/hashicorp_vault", "tags": [ "infrastructure", "hashicorp", "vault" ], "icon": "Server", "type": "dagster_component_templates.VaultAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/hashicorp_vault/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/hashicorp_vault/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/hashicorp_vault/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/hashicorp_vault/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/hashicorp_vault/requirements.txt", "component_type": "dagster_component_templates.VaultAssetComponent", "validation": { "level": "code", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "requests" ] }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "helm_deploy", "name": "Helm Deploy", "category": "infrastructure", "description": "Deploy or upgrade a Helm chart as a Dagster asset.", "path": "assets/infrastructure/helm_deploy", "tags": [ "infrastructure", "helm", "deploy" ], "icon": "Server", "type": "dagster_component_templates.HelmDeployComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/helm_deploy/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/helm_deploy/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/helm_deploy/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/helm_deploy/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/helm_deploy/requirements.txt", "component_type": "dagster_component_templates.HelmDeployComponent", "validation": { "level": "code", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster" ] }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "hex_project_assets", "name": "HexProjectAssets", "category": "integration", "description": "Run a Hex project on materialization via dagster-hex.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/hex_project_assets", "tags": [ "integration", "hex", "notebook", "official" ], "dependencies": { "pip": [ "dagster", "dagster-hex" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/hex_project_assets/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/hex_project_assets/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/hex_project_assets/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/hex_project_assets/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/hex_project_assets/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "asset", "resource" ], "agent_hints": {} }, { "id": "hl7_v2_parser", "name": "Hl7 V2 Parser", "category": "transformation", "description": "Parse a column of pipe-delimited HL7 v2 messages into a flat DataFrame.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/hl7_v2_parser", "tags": [ "hl7-v2-parser", "transforms" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/hl7_v2_parser/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/hl7_v2_parser/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/hl7_v2_parser/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/hl7_v2_parser/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/hl7_v2_parser/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "hris_normalizer", "name": "HrisNormalizerComponent", "category": "transformation", "description": "Vendor-agnostic HRIS schema normalization. Maps any DataFrame of employee data (Workday / BambooHR / ADP / Gusto / Rippling / Hibob / internal export) to a canonical schema (employee_id, email, name, department, manager, hire_date, status, etc.) usable by downstream HR analytics.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/hris_normalizer", "tags": [ "transformation", "hris", "hr", "people-data", "normalization", "schema-mapping" ], "dependencies": { "pip": [ "dagster>=1.8.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/hris_normalizer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/hris_normalizer/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/hris_normalizer/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/hris_normalizer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/hris_normalizer/requirements.txt", "component_type": "dagster_component_templates.HrisNormalizerComponent", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/hris_normalizer.md", "last_validated": "2026-05-08" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "html_parser", "name": "Html Parser", "category": "transformation", "description": "Strip HTML tags from text columns or extract specific elements using BeautifulSoup.", "path": "assets/transforms/html_parser", "tags": [ "transformation", "documents", "html", "parsing", "text-extraction" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/html_parser/schema.json", "component_type": "dagster_component_templates.HtmlParserComponent", "icon": "Code", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/html_parser/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/html_parser/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/html_parser/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/html_parser/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/books_scraper.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with an HTML string column.", "outputs": "DataFrame + parsed elements (text, tables, links, meta) as new columns.", "side_effects": "Adds columns. Requires beautifulsoup4 / lxml.", "anti_uses": "For plain-text extraction use markdown_stripper. For document ingestion use document_ingestion.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "beautifulsoup4" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "http_external_asset", "name": "HttpExternalAssetComponent", "category": "integration", "description": "Generic wrapper for HTTP-driven external job runners \u2014 internal job APIs, less-common SaaS tools, GitHub Actions / Jenkins / CircleCI / Argo / Kestra style runners, or prototyping before investing in a custom SDK. Configure trigger / status / log endpoints in YAML; runs the trigger \u2192 poll \u2192 fetch logs loop with a JSONPath/regex/header condition language and Jinja2 templating. Prefer dedicated registry components (fivetran_assets, airbyte_assets, dbt_run_job, matillion_run_asset, etc.) when one exists for your vendor.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/http_external_asset", "tags": [ "integration", "http", "rest", "external", "trigger", "poll", "webhook", "fivetran", "airbyte", "dbt-cloud", "github-actions" ], "dependencies": { "pip": [ "dagster>=1.8.0", "httpx>=0.24.0", "jinja2>=3.0.0", "jsonpath-ng>=1.6.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/http_external_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/http_external_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/http_external_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/http_external_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/http_external_asset/requirements.txt", "component_type": "dagster_component_templates.HttpExternalAssetComponent", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/http_external_asset.md", "last_validated": "2026-05-08" }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "http_poll_sensor", "name": "HttpPollSensor", "category": "sensor", "description": "Poll an HTTP endpoint and trigger a run when a targeted slice of the response changes (json_path / regex / css_selector / strip_patterns).", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/http_poll_sensor", "tags": [ "sensor", "http", "polling", "generic" ], "dependencies": { "pip": [ "requests", "beautifulsoup4" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/http_poll_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/http_poll_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/http_poll_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/http_poll_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/http_poll_sensor/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/nba_scoreboard.md", "last_validated": "2026-05-06" }, "produces": [ "sensor" ], "agent_hints": {} }, { "id": "http_resource", "name": "HTTP Resource", "category": "resource", "description": "Register an HTTP resource (base URL + auth header) for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/http_resource", "tags": [ "resource", "http", "api" ], "dependencies": { "pip": [ "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/http_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/http_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/http_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/http_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/http_resource/requirements.txt", "icon": "si:curl", "x-dagster-provides": [ "http_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "http_webhook_job", "name": "HttpWebhookJobComponent", "category": "jobs", "description": "POST/GET to an HTTP endpoint as a job \u2014 heartbeats, status pings, fire-and-forget triggers.", "version": "1.0.0", "author": "Dagster Community", "path": "jobs/http_webhook_job", "tags": [ "job", "http", "webhook", "heartbeat" ], "dependencies": { "pip": [ "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/http_webhook_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/http_webhook_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/http_webhook_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/http_webhook_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/http_webhook_job/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/composition_primitives.md", "last_validated": "2026-05-14" }, "produces": [ "job", "schedule" ], "agent_hints": {} }, { "id": "hubspot_ingestion", "name": "HubSpot Ingestion", "category": "ingestion", "description": "Component for ingesting HubSpot CRM and marketing data using dlt.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/hubspot_ingestion", "tags": [ "ingestion", "hubspot" ], "dependencies": { "pip": [ "dlt[hubspot]>=0.4.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/hubspot_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/hubspot_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/hubspot_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/hubspot_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/hubspot_ingestion/requirements.txt", "icon": "si:hubspot", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/crm_reconciliation.md", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 reads HubSpot CRM objects (contacts, deals, companies).", "outputs": "DataFrame with columns from HubSpot API.", "side_effects": "Requires hubspot_api_key.", "requires_resources": [ "hubspot_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:hubspot" ] }, { "id": "hubspot_resource", "name": "HubSpot Resource", "category": "resource", "description": "Register a HubSpotResource wrapping the hubspot-api-client for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/hubspot_resource", "tags": [ "resource", "hubspot", "crm", "marketing" ], "dependencies": { "pip": [ "hubspot-api-client" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/hubspot_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/hubspot_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/hubspot_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/hubspot_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/hubspot_resource/requirements.txt", "icon": "si:hubspot", "x-dagster-provides": [ "hubspot_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:hubspot" ] }, { "id": "huggingface_chat_completion", "name": "HuggingFace Chat Completion", "category": "ai", "description": "Call a chat-completion model via the HuggingFace router (OpenAI-compatible) \u2014 Kimi, Llama, Mistral, Qwen, DeepSeek via one SDK.", "path": "assets/ai/huggingface_chat_completion", "tags": [ "ai", "huggingface", "chat", "llm", "router" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_chat_completion/schema.json", "component_type": "dagster_community_components.HuggingfaceChatCompletionComponent", "icon": "si:huggingface", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_chat_completion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_chat_completion/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_chat_completion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_chat_completion/requirements.txt", "dependencies": { "pip": [ "openai>=1.0.0" ] }, "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/huggingface.md", "last_validated": "2026-05-22" }, "version": "1.0.0", "author": "Dagster Community", "produces": [ "asset" ], "agent_hints": {} }, { "id": "huggingface_dataset_asset", "name": "HuggingFace Dataset (observed)", "category": "ai", "description": "Observe a HuggingFace Hub dataset's metadata as a Dagster source asset \u2014 downloads, likes, configs, license.", "path": "assets/ai/huggingface_dataset_asset", "tags": [ "ai", "huggingface", "dataset", "observation" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_dataset_asset/schema.json", "component_type": "dagster_community_components.HuggingfaceDatasetAssetComponent", "icon": "si:huggingface", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_dataset_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_dataset_asset/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_dataset_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_dataset_asset/requirements.txt", "dependencies": { "pip": [ "huggingface-hub>=0.20.0" ] }, "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/huggingface.md", "last_validated": "2026-05-22" }, "version": "1.0.0", "author": "Dagster Community", "produces": [ "asset" ], "agent_hints": {} }, { "id": "huggingface_inference_endpoint", "name": "HuggingFace Inference Endpoint", "category": "ai", "description": "Call a dedicated HuggingFace Inference Endpoint (paid, scaled, per-model deployment) \u2014 different from the shared public API.", "path": "assets/ai/huggingface_inference_endpoint", "tags": [ "ai", "huggingface", "inference-endpoints", "dedicated" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_inference_endpoint/schema.json", "component_type": "dagster_community_components.HuggingfaceInferenceEndpointComponent", "icon": "si:huggingface", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_inference_endpoint/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_inference_endpoint/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_inference_endpoint/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_inference_endpoint/requirements.txt", "dependencies": { "pip": [ "huggingface-hub>=0.20.0" ] }, "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/huggingface.md", "last_validated": "2026-05-22" }, "version": "1.0.0", "author": "Dagster Community", "produces": [ "asset" ], "agent_hints": {} }, { "id": "huggingface_model_asset", "name": "HuggingFace Model (observed)", "category": "ai", "description": "Observe a HuggingFace Hub model's metadata as a Dagster source asset \u2014 downloads, likes, pipeline tag, last_modified.", "path": "assets/ai/huggingface_model_asset", "tags": [ "ai", "huggingface", "model", "observation" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_model_asset/schema.json", "component_type": "dagster_community_components.HuggingfaceModelAssetComponent", "icon": "si:huggingface", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_model_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_model_asset/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_model_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_model_asset/requirements.txt", "dependencies": { "pip": [ "huggingface-hub>=0.20.0" ] }, "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/huggingface.md", "last_validated": "2026-05-22" }, "version": "1.0.0", "author": "Dagster Community", "produces": [ "asset" ], "agent_hints": {} }, { "id": "huggingface_pipeline", "name": "HuggingFace Pipeline", "category": "ai", "description": "Run any HuggingFace transformers.pipeline task on a list of inputs \u2014 no DataFrame required. Local or Inference API.", "path": "assets/ai/huggingface_pipeline", "tags": [ "ai", "huggingface", "transformers", "inference" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_pipeline/schema.json", "component_type": "dagster_community_components.HuggingfacePipelineComponent", "icon": "si:huggingface", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_pipeline/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_pipeline/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_pipeline/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_pipeline/requirements.txt", "dependencies": { "pip": [ "huggingface-hub>=0.20.0" ] }, "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/huggingface.md", "last_validated": "2026-05-22" }, "version": "1.0.0", "author": "Dagster Community", "produces": [ "asset" ], "agent_hints": { "output_type": "pd.DataFrame" } }, { "id": "huggingface_space_status_sensor", "name": "HuggingFace Space Status Sensor", "category": "sensor", "description": "Fire a Dagster RunRequest when a HuggingFace Space hits a target stage (e.g. RUNNING after a rebuild).", "path": "sensors/huggingface_space_status_sensor", "tags": [ "sensor", "huggingface", "space", "status" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/huggingface_space_status_sensor/schema.json", "component_type": "dagster_community_components.HuggingfaceSpaceStatusSensorComponent", "icon": "si:huggingface", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/huggingface_space_status_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/huggingface_space_status_sensor/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/huggingface_space_status_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/huggingface_space_status_sensor/requirements.txt", "dependencies": { "pip": [ "huggingface-hub>=0.20.0" ] }, "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/huggingface.md", "last_validated": "2026-05-22" }, "version": "1.0.0", "author": "Dagster Community", "produces": [ "sensor" ], "agent_hints": {} }, { "id": "huggingface_text_to_image", "name": "HuggingFace Text-to-Image", "category": "ai", "description": "Generate images from text prompts via HuggingFace InferenceClient. Multi-provider routing (wavespeed/falai/replicate/together).", "path": "assets/ai/huggingface_text_to_image", "tags": [ "ai", "huggingface", "image-generation", "text-to-image" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_text_to_image/schema.json", "component_type": "dagster_community_components.HuggingfaceTextToImageComponent", "icon": "si:huggingface", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_text_to_image/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_text_to_image/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_text_to_image/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/huggingface_text_to_image/requirements.txt", "dependencies": { "pip": [ "huggingface-hub>=0.20.0", "Pillow>=10.0.0" ] }, "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/huggingface.md", "last_validated": "2026-05-22" }, "version": "1.0.0", "author": "Dagster Community", "produces": [ "asset" ], "agent_hints": {} }, { "id": "iceberg_catalog_resource", "name": "Iceberg Catalog Resource", "category": "resource", "description": "Register a PyIceberg catalog (REST / Glue / Hive / Hadoop / SQL) once and reuse across many ingestion / sink / observation components.", "path": "resources/iceberg_catalog_resource", "tags": [ "resource", "iceberg", "lakehouse", "pyiceberg" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/iceberg_catalog_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/iceberg_catalog_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/iceberg_catalog_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/iceberg_catalog_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/iceberg_catalog_resource/requirements.txt", "icon": "Database", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/lakehouse_local.md", "last_validated": "2026-05-14" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "pyiceberg" ] }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:iceberg" ] }, { "id": "iceberg_ingestion", "name": "Iceberg Ingestion", "category": "ingestion", "description": "Read from an EXISTING external Apache Iceberg table (Snowflake / Trino / Spark / Flink / Databricks / Polaris / Nessie / Glue / S3 Tables) into a Dagster asset as a pandas DataFrame. Uses pyiceberg. Supports snapshot/branch/time-travel.", "path": "assets/ingestion/iceberg_ingestion", "tags": [ "ingestion", "iceberg", "lakehouse", "pyiceberg", "rest-catalog", "glue", "nessie", "polaris", "snowflake", "s3-tables" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/iceberg_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/iceberg_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/iceberg_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/iceberg_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/iceberg_ingestion/requirements.txt", "icon": "Database", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/lakehouse_local.md", "last_validated": "2026-05-14" }, "agent_hints": { "inputs": "None (root source) \u2014 reads an Iceberg table.", "outputs": "DataFrame with columns from the Iceberg table's schema.", "side_effects": "Requires pyiceberg or configured catalog.", "anti_uses": "For writing to Iceberg use dataframe_to_iceberg_table. For Delta use delta_ingestion.", "requires_resources": [ "iceberg_catalog" ], "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "pyiceberg", "pyarrow", "pandas" ] }, "produces": [ "asset" ], "consumes": [ "resource:iceberg" ] }, { "id": "iceberg_io_manager", "name": "IcebergIOManager", "category": "io_manager", "description": "Wrap the official `dagster-iceberg` IcebergPyarrowIOManager so assets persist as Iceberg tables.", "version": "1.0.0", "author": "Dagster Community", "path": "io_managers/iceberg_io_manager", "tags": [ "io_manager", "iceberg", "lakehouse", "parquet" ], "dependencies": { "pip": [ "dagster", "dagster-iceberg", "pyarrow" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/iceberg_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/iceberg_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/iceberg_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/iceberg_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/iceberg_io_manager/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/local_io.md", "last_validated": "2026-05-08" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:iceberg" ] }, { "id": "iceberg_maintenance_job", "name": "IcebergMaintenanceJobComponent", "category": "jobs", "description": "Cron-driven Iceberg maintenance \u2014 OPTIMIZE (compaction), expire snapshots, remove orphans, rewrite manifests. Engine support: Spark, Trino, Athena.", "version": "1.0.0", "author": "Dagster Community", "path": "jobs/iceberg_maintenance_job", "tags": [ "iceberg", "maintenance", "compaction", "vacuum", "optimize", "job" ], "dependencies": { "pip": [ "sqlalchemy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/iceberg_maintenance_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/iceberg_maintenance_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/iceberg_maintenance_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/iceberg_maintenance_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/iceberg_maintenance_job/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "job", "schedule" ], "agent_hints": {}, "consumes": [ "resource:iceberg" ] }, { "id": "image_captioner", "name": "Image Captioner", "category": "ai", "description": "Generate captions for images from a file path or URL column using a vision-capable LLM.", "path": "assets/ai/image_captioner", "tags": [ "ai", "vision", "image-captioning", "llm", "multimodal" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_captioner/schema.json", "component_type": "dagster_component_templates.ImageCaptionerComponent", "icon": "Image", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_captioner/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_captioner/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_captioner/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_captioner/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/multimodal_ai.md", "last_validated": "2026-05-08" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "litellm" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "image_classifier", "name": "Image Classifier", "category": "ai", "description": "Classify images using CLIP zero-shot or torchvision pre-trained models, returning top-N labels and confidence scores.", "path": "assets/ai/image_classifier", "tags": [ "ai", "image", "vision", "classification" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_classifier/schema.json", "component_type": "dagster_component_templates.ImageClassifierComponent", "icon": "Tag", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_classifier/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_classifier/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_classifier/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_classifier/requirements.txt", "validation": { "level": "live", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "transformers", "Pillow", "torch" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "image_exif_extractor", "name": "Image Exif Extractor", "category": "transformation", "description": "Extract EXIF metadata from a column of image file paths.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/image_exif_extractor", "tags": [ "image-exif-extractor", "transforms" ], "dependencies": { "pip": [ "pandas", "pillow" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/image_exif_extractor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/image_exif_extractor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/image_exif_extractor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/image_exif_extractor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/image_exif_extractor/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "image_llm_extractor", "name": "Image LLM Extractor", "category": "ai", "description": "Send images to a vision LLM (GPT-4o, Claude, Gemini) and extract structured fields as new DataFrame columns.", "path": "assets/ai/image_llm_extractor", "tags": [ "ai", "image", "vision", "llm", "extraction", "agentic" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_llm_extractor/schema.json", "component_type": "dagster_component_templates.ImageLlmExtractorComponent", "icon": "Scan", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_llm_extractor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_llm_extractor/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_llm_extractor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_llm_extractor/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/multimodal_ai.md", "last_validated": "2026-05-08" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "litellm", "Pillow" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "image_metadata_extractor", "name": "Image Metadata Extractor", "category": "ai", "description": "Extract technical metadata from images including dimensions, format, color mode, and EXIF data such as GPS coordinates and camera model.", "path": "assets/ai/image_metadata_extractor", "tags": [ "ai", "image", "metadata", "exif", "vision" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_metadata_extractor/schema.json", "component_type": "dagster_component_templates.ImageMetadataExtractorComponent", "icon": "Camera", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_metadata_extractor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_metadata_extractor/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_metadata_extractor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_metadata_extractor/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/vision_pipeline.md", "last_validated": "2026-05-08" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "Pillow" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "image_object_detector", "name": "Image Object Detector", "category": "ai", "description": "Detect objects in images using HuggingFace DETR models, returning bounding boxes, labels, and confidence scores.", "path": "assets/ai/image_object_detector", "tags": [ "ai", "image", "vision", "object-detection" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_object_detector/schema.json", "component_type": "dagster_component_templates.ImageObjectDetectorComponent", "icon": "Crosshair", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_object_detector/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_object_detector/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_object_detector/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_object_detector/requirements.txt", "validation": { "level": "live", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "transformers", "Pillow", "torch" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "image_similarity_scorer", "name": "Image Similarity Scorer", "category": "ai", "description": "Score visual similarity between images using CLIP embeddings and cosine similarity.", "path": "assets/ai/image_similarity_scorer", "tags": [ "ai", "image", "vision", "similarity", "embeddings" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_similarity_scorer/schema.json", "component_type": "dagster_component_templates.ImageSimilarityScorerComponent", "icon": "GitCompare", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_similarity_scorer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_similarity_scorer/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_similarity_scorer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/image_similarity_scorer/requirements.txt", "validation": { "level": "live", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "transformers", "Pillow", "torch" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "image_transform_asset", "name": "Image Transform Asset", "category": "transformation", "description": "Resize / crop / convert / grayscale image files in a DataFrame column.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/image_transform_asset", "tags": [ "image-transform-asset", "transforms" ], "dependencies": { "pip": [ "pandas", "pillow" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/image_transform_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/image_transform_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/image_transform_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/image_transform_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/image_transform_asset/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "imap_inbox_source", "name": "IMAP Inbox Source", "category": "source", "description": "Fetch emails from any IMAP-compliant mailbox (Gmail/Outlook/Yahoo/Dovecot). Emits one row per message with subject/body/attachments.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/imap_inbox_source", "tags": [ "imap-inbox-source", "source", "email" ], "dependencies": { "pip": [ "dagster", "pandas", "tabulate" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/imap_inbox_source/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/imap_inbox_source/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/imap_inbox_source/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/imap_inbox_source/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/imap_inbox_source/requirements.txt", "validation": { "level": "live", "last_validated": "2026-05-19", "evidence": "email_roundtrip.md" }, "agent_hints": { "inputs": "None (root source) \u2014 reads emails from an IMAP server.", "outputs": "DataFrame of emails (from, to, subject, body, timestamp).", "requires_resources": [ "imap_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:imap" ] }, { "id": "imputation", "name": "Imputation", "category": "transformation", "description": "Fill missing values using various imputation strategies.", "path": "assets/transforms/imputation", "tags": [ "transformation", "imputation" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/imputation/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/imputation/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/imputation/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/imputation/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/imputation/requirements.txt", "icon": "Shuffle", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/penguins.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with columns containing nulls to fill.", "outputs": "Same columns; nulls in the listed `columns` filled per strategy.", "side_effects": "Modifies values IN PLACE; column names unchanged.", "anti_uses": "Not for type conversion (use type_coercer). Not for dropping rows with nulls (use unique_dedup with keep or filter).", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "influxdb_resource", "name": "InfluxDB Resource", "category": "resource", "description": "InfluxDB 2.x / 3.x connection resource via the official influxdb-client SDK.", "path": "resources/influxdb_resource", "tags": [ "resource", "influxdb", "timeseries" ], "vendor": "InfluxDB", "dependencies": { "pip": [ "influxdb-client>=1.40.0" ] }, "version": "1.0.0", "author": "Dagster Community", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/influxdb_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/influxdb_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/influxdb_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/influxdb_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/influxdb_resource/requirements.txt", "validation": { "level": "live", "last_validated": "2026-05-27", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/influxdb.md" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:influxdb" ] }, { "id": "inline_dataframe", "name": "Inline DataFrame", "category": "source", "description": "Materialize a small literal DataFrame from inline YAML rows + optional per-column dtypes. For reference tables, fixtures, or Alteryx Text Input ports \u2014 where bundling a CSV alongside the project is overkill. Pairs with the alteryx-to-dagster migrator (auto-routes Text Input tools to this component instead of emitting a custom .py asset).", "path": "assets/sources/inline_dataframe", "tags": [ "source", "dataframe", "inline", "reference", "alteryx", "fixture" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/inline_dataframe/schema.json", "component_type": "dagster_component_templates.InlineDataframeComponent", "icon": "Table", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/inline_dataframe/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/inline_dataframe/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/inline_dataframe/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/inline_dataframe/requirements.txt", "validation": { "level": "code", "last_validated": "2026-06-05" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "pandas" ] }, "agent_hints": { "inputs": "None \u2014 you provide the data literal in the config.", "outputs": "DataFrame constructed from the config's `rows` or `records`.", "side_effects": "For fixture data / demos where you don't want an external source.", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "instructor_extractor", "name": "Instructor Extractor", "category": "ai", "description": "Extract structured Pydantic models from text using the Instructor library with any OpenAI-compatible LLM, expanding fields as new DataFrame columns.", "path": "assets/ai/instructor_extractor", "tags": [ "ai", "llm", "instructor", "extraction", "structured-output", "pydantic" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/instructor_extractor/schema.json", "component_type": "dagster_component_templates.InstructorExtractorComponent", "icon": "FileCheck", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/instructor_extractor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/instructor_extractor/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/instructor_extractor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/instructor_extractor/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/llm_execution.md", "last_validated": "2026-05-08" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "instructor", "openai", "pandas" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame" }, "consumes": [ "resource:instructor" ] }, { "id": "insurance_claim_extractor", "name": "Insurance Claim Extractor", "category": "ai", "description": "Extract structured data from insurance claim documents using an LLM.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/insurance_claim_extractor", "tags": [ "ai", "extraction", "insurance", "claims" ], "dependencies": { "pip": [ "dagster", "pandas>=1.5.0", "litellm>=1.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/insurance_claim_extractor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/insurance_claim_extractor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/insurance_claim_extractor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/insurance_claim_extractor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/insurance_claim_extractor/requirements.txt", "icon": "Shield", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/document_extractors.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "intercom_resource", "name": "Intercom Resource", "category": "resource", "description": "Intercom REST API client for support data ingestion.", "path": "resources/intercom_resource", "tags": [ "resource", "intercom", "support", "saas" ], "type": "dagster_component_templates.IntercomResourceComponent", "component_type": "dagster_component_templates.IntercomResourceComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/intercom_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/intercom_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/intercom_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/intercom_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/intercom_resource/requirements.txt", "icon": "MessageCircle", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/enterprise_saas.md", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "requests" ] }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "interval_schedule", "name": "IntervalSchedule", "category": "infrastructure", "description": "Run an asset selection at a fixed interval (every N minutes / hours / days).", "version": "1.0.0", "author": "Dagster Community", "path": "schedules/interval_schedule", "tags": [ "infrastructure", "schedule", "interval", "orchestration" ], "dependencies": { "pip": [] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/schedules/interval_schedule/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/schedules/interval_schedule/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/schedules/interval_schedule/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/schedules/interval_schedule/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/schedules/interval_schedule/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "job", "schedule" ], "agent_hints": {} }, { "id": "invoice_extractor", "name": "Invoice Extractor", "category": "ai", "description": "Component for extracting structured data from invoice text using LLMs.", "path": "assets/ai/invoice_extractor", "tags": [ "ai", "invoice", "extractor" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/invoice_extractor/schema.json", "component_type": "dagster_component_templates.InvoiceExtractorComponent", "icon": "Sparkles", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/invoice_extractor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/invoice_extractor/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/invoice_extractor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/invoice_extractor/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/document_extractors.md", "last_validated": "2026-05-08" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "litellm" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "iso20022_payment_parser", "name": "Iso20022 Payment Parser", "category": "transformation", "description": "Parse a column of ISO 20022 XML payment messages into a flat DataFrame.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/iso20022_payment_parser", "tags": [ "iso20022-payment-parser", "transforms" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/iso20022_payment_parser/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/iso20022_payment_parser/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/iso20022_payment_parser/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/iso20022_payment_parser/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/iso20022_payment_parser/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "iterative_supervisor_agent", "name": "Iterative Supervisor Agent", "category": "ai", "description": "Iterative / chained supervisor agent \u2014 planner runs once per step, sees prior steps' tool outputs, and picks the NEXT tool call (or declares done). Each step is its own Dagster asset (ReAct loop with full lineage). Static DAG shape via pre-declared max_iterations, dynamic termination via short-circuit.", "path": "assets/ai/iterative_supervisor_agent", "tags": [ "ai", "agent", "agentic", "supervisor", "planner", "iterative", "react", "chained", "openai" ], "icon": "Sparkles", "type": "dagster_community_components.IterativeSupervisorAgentComponent", "component_type": "dagster_community_components.IterativeSupervisorAgentComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/iterative_supervisor_agent/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/iterative_supervisor_agent/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/iterative_supervisor_agent/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/iterative_supervisor_agent/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/iterative_supervisor_agent/requirements.txt", "dependencies": { "pip": [ "pandas", "openai>=1.0.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/iterative_supervisor_agent.md", "last_validated": "2026-07-07" }, "version": "1.0.0", "author": "Dagster Community", "produces": [ "asset" ], "agent_hints": { "output_type": "pd.DataFrame" } }, { "id": "jira_ingestion", "name": "Jira Ingestion", "category": "ingestion", "description": "Component for ingesting Jira issue tracking data using dlt.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/jira_ingestion", "tags": [ "ingestion", "jira" ], "dependencies": { "pip": [ "dlt[jira]>=0.4.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/jira_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/jira_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/jira_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/jira_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/jira_ingestion/requirements.txt", "icon": "si:jira", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 hits vendor's REST API.", "outputs": "DataFrame with columns from Jira issues, projects, sprints, worklogs.", "side_effects": "Read-only. Requires Jira API credentials. Rate-limited per Jira's tier.", "anti_uses": "For generic REST APIs use rest_api_fetcher. For writing back to Jira use its dedicated writer (if available).", "requires_resources": [ "jira_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:jira" ] }, { "id": "jira_issue_sensor", "name": "JiraIssueSensor", "category": "sensor", "description": "Trigger a run when Jira has new or updated issues matching a JQL query.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/jira_issue_sensor", "tags": [ "sensor", "jira", "atlassian", "issue-tracking" ], "dependencies": { "pip": [ "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/jira_issue_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/jira_issue_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/jira_issue_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/jira_issue_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/jira_issue_sensor/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:jira" ] }, { "id": "jira_resource", "name": "Jira Resource", "category": "resource", "description": "Register a JiraResource wrapping the Jira Python client for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/jira_resource", "tags": [ "resource", "jira", "project-management", "atlassian" ], "dependencies": { "pip": [ "jira" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/jira_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/jira_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/jira_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/jira_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/jira_resource/requirements.txt", "icon": "si:jira", "x-dagster-provides": [ "jira_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:jira" ] }, { "id": "job_posting_extractor", "name": "Job Posting Extractor", "category": "ai", "description": "Extract structured data from job postings and descriptions using an LLM.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/job_posting_extractor", "tags": [ "ai", "extraction", "hr", "recruiting" ], "dependencies": { "pip": [ "dagster", "pandas>=1.5.0", "litellm>=1.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/job_posting_extractor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/job_posting_extractor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/job_posting_extractor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/job_posting_extractor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/job_posting_extractor/requirements.txt", "icon": "Briefcase", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/document_extractors.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "json_flatten", "name": "Json Flatten", "category": "transformation", "description": "Recursively flatten nested dict columns into dot-notation columns.", "path": "assets/transforms/json_flatten", "tags": [ "transformation", "documents", "json", "flatten", "normalization" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/json_flatten/schema.json", "component_type": "dagster_component_templates.JsonFlattenComponent", "icon": "Braces", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/json_flatten/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/json_flatten/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/json_flatten/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/json_flatten/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/earthquakes.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with a JSON string or dict column.", "outputs": "DataFrame with nested JSON expanded into columns (dot-notation for nesting).", "side_effects": "Column count grows. Original JSON column may be dropped.", "anti_uses": "For dataframe-native nested columns use dataframe_flatten_nested_columns. For array elements use array_exploder.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "json_path_extractor", "name": "Json Path Extractor", "category": "transformation", "description": "Extract values from dict/JSON columns using JSONPath expressions.", "path": "assets/transforms/json_path_extractor", "tags": [ "transformation", "documents", "json", "jsonpath", "extraction" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/json_path_extractor/schema.json", "component_type": "dagster_component_templates.JsonPathExtractorComponent", "icon": "Search", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/json_path_extractor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/json_path_extractor/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/json_path_extractor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/json_path_extractor/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/github_jsonpath.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with a JSON string column + a JSONPath expression.", "outputs": "DataFrame + a NEW column containing the JSONPath result per row.", "side_effects": "Adds one column. Original JSON preserved.", "anti_uses": "For full flattening use json_flatten. For dict access on already-parsed dicts use dataframe_extract_field.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "jsonpath-ng" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "jupyter_notebook", "name": "Jupyter Notebook", "category": "transformation", "description": "Execute a Jupyter notebook (.ipynb) or inline Python code against an upstream DataFrame. Drop-in for Alteryx's Jupyter Code tool.", "path": "assets/transforms/jupyter_notebook", "tags": [ "transformation", "jupyter", "python", "alteryx" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/jupyter_notebook/schema.json", "component_type": "dagster_community_components.JupyterNotebookComponent", "icon": "Notebook", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/jupyter_notebook/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/jupyter_notebook/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/jupyter_notebook/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/jupyter_notebook/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/notebooks.md", "last_validated": "2026-06-06" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "pyarrow", "papermill" ] }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "jupyter_notebook_asset", "name": "Jupyter Notebook Asset", "category": "analytics", "description": "Execute a Jupyter notebook as a Dagster asset using Papermill.", "path": "assets/analytics/jupyter_notebook_asset", "tags": [ "analytics", "jupyter", "notebook", "asset" ], "icon": "si:jupyter", "type": "dagster_component_templates.JupyterNotebookAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/jupyter_notebook_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/jupyter_notebook_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/jupyter_notebook_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/jupyter_notebook_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/jupyter_notebook_asset/requirements.txt", "component_type": "dagster_component_templates.JupyterNotebookAssetComponent", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/notebooks.md", "last_validated": "2026-05-14" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "papermill", "ipykernel" ] }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "k8s_job_asset", "name": "K8sJobAsset", "category": "infrastructure", "description": "Run a Kubernetes Job as a Dagster asset via dagster-k8s.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/infrastructure/k8s_job_asset", "tags": [ "infrastructure", "kubernetes", "k8s", "compute", "official" ], "dependencies": { "pip": [ "dagster", "dagster-k8s" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/k8s_job_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/k8s_job_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/k8s_job_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/k8s_job_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/k8s_job_asset/requirements.txt", "validation": { "level": "live", "last_validated": "2026-05-19", "evidence": "setup_docker_container_demo.sh" }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "k_centroids_diagnostics", "name": "KCentroidsDiagnostics", "category": "analytics", "description": "Compute silhouette + elbow scores across a range of k values to choose the optimal cluster count.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/k_centroids_diagnostics", "tags": [ "analytics", "clustering", "diagnostics" ], "dependencies": { "pip": [ "pandas", "scikit-learn", "numpy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/k_centroids_diagnostics/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/k_centroids_diagnostics/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/k_centroids_diagnostics/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/k_centroids_diagnostics/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/k_centroids_diagnostics/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with numeric feature columns.", "outputs": "DataFrame with diagnostic metrics per k (elbow / silhouette).", "side_effects": "Helps pick the right k for k_means_clustering.", "requires_pip": [ "sklearn" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "k_means_clustering", "name": "K-Means Clustering", "category": "analytics", "description": "Cluster records using K-means and assign cluster IDs.", "path": "assets/analytics/k_means_clustering", "tags": [ "analytics", "means", "clustering" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/k_means_clustering/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/k_means_clustering/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/k_means_clustering/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/k_means_clustering/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/k_means_clustering/requirements.txt", "icon": "BarChart2", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/iris_unsupervised.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with numeric feature columns.", "outputs": "DataFrame + a NEW `cluster` column (integer id per row).", "side_effects": "Adds one column. Requires sklearn. Feature scaling matters \u2014 chain feature_scaler.", "anti_uses": "For hierarchical or density-based clustering use spatial_cluster. For diagnostics use k_centroids_diagnostics.", "requires_pip": [ "sklearn" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "scikit-learn" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "kafka_monitor", "name": "Kafka Monitor", "category": "sensor", "description": "Component for monitoring a Kafka topic for new messages.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/kafka_monitor", "tags": [ "sensor", "kafka", "monitor" ], "dependencies": { "pip": [ "kafka-python>=2.0.2" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/kafka_monitor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/kafka_monitor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/kafka_monitor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/kafka_monitor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/kafka_monitor/requirements.txt", "icon": "si:apachekafka", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/kafka.md", "last_validated": "2026-05-14" }, "produces": [ "sensor" ], "agent_hints": {} }, { "id": "kafka_observation_sensor", "name": "Kafka Observation Sensor", "category": "observation", "description": "KafkaObservationSensorComponent", "version": "1.0.0", "author": "Dagster Community", "path": "observations/kafka_observation_sensor", "tags": [ "observation", "kafka", "sensor" ], "dependencies": { "pip": [ "kafka-python>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/kafka_observation_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/kafka_observation_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/kafka_observation_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/kafka_observation_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/kafka_observation_sensor/requirements.txt", "icon": "si:apachekafka", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/kafka.md", "last_validated": "2026-05-14" }, "produces": [ "sensor" ], "agent_hints": {} }, { "id": "kafka_resource", "name": "Apache Kafka Resource", "category": "resource", "description": "Register a Kafka resource providing producer and consumer factories", "version": "1.0.0", "author": "Dagster Community", "path": "resources/kafka_resource", "tags": [ "resource", "kafka", "streaming", "messaging" ], "dependencies": { "pip": [ "kafka-python>=2.0.2" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/kafka_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/kafka_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/kafka_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/kafka_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/kafka_resource/requirements.txt", "icon": "si:apachekafka", "x-dagster-provides": [ "kafka_resource" ], "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/kafka.md", "last_validated": "2026-05-14" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "kafka_to_database_asset", "name": "Kafka to Database", "category": "ingestion", "description": "Consume messages from a Kafka topic and write them to a database table.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/kafka_to_database_asset", "tags": [ "ingestion", "kafka", "database", "asset" ], "dependencies": { "pip": [ "confluent-kafka>=2.0.0", "pandas>=1.3.0", "sqlalchemy>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/kafka_to_database_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/kafka_to_database_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/kafka_to_database_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/kafka_to_database_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/kafka_to_database_asset/requirements.txt", "icon": "si:apachekafka", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/kafka.md", "last_validated": "2026-05-14" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 consumes from Kafka topic, writes to DB.", "outputs": "None (sink-like \u2014 writes to configured DB).", "side_effects": "Continuous consumer or batch per run. Requires kafka_resource + database_connection.", "anti_uses": "For DataFrame return use a kafka_reader (if available). For file-based ingest use file_ingestion.", "requires_resources": [ "kafka_resource", "database_connection" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "key_vault_resource", "name": "Azure Key Vault Resource", "category": "resource", "description": "Azure Key Vault client for runtime secret retrieval. Replaces per-component *_env_var fields with centralized secret management following Azure RBAC.", "path": "resources/key_vault_resource", "tags": [ "resource", "azure", "keyvault", "secrets" ], "type": "dagster_component_templates.KeyVaultResourceComponent", "component_type": "dagster_component_templates.KeyVaultResourceComponent", "icon": "Key", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/key_vault_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/key_vault_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/key_vault_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/key_vault_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/key_vault_resource/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/key_vault.md", "last_validated": "2026-05-06" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "azure-identity", "azure-keyvault-secrets" ] }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "keyword_extractor", "name": "Keyword Extractor", "category": "ai", "description": "Extract keywords and key phrases from a text column using TF-IDF, YAKE, or RAKE.", "path": "assets/ai/keyword_extractor", "tags": [ "ai", "nlp", "keywords", "tfidf", "text-mining" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/keyword_extractor/schema.json", "component_type": "dagster_component_templates.KeywordExtractorComponent", "icon": "Tag", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/keyword_extractor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/keyword_extractor/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/keyword_extractor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/keyword_extractor/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/ai_no_llm.md", "last_validated": "2026-05-08" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "scikit-learn" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "kinesis_monitor", "name": "Kinesis Monitor", "category": "sensor", "description": "Component for monitoring an AWS Kinesis Data Stream for new records.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/kinesis_monitor", "tags": [ "sensor", "kinesis", "monitor" ], "dependencies": { "pip": [ "boto3>=1.26.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/kinesis_monitor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/kinesis_monitor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/kinesis_monitor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/kinesis_monitor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/kinesis_monitor/requirements.txt", "icon": "Radar", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "AWS", "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:kinesis" ] }, { "id": "kinesis_observation_sensor", "name": "Kinesis Observation Sensor", "category": "observation", "description": "KinesisObservationSensorComponent", "version": "1.0.0", "author": "Dagster Community", "path": "observations/kinesis_observation_sensor", "tags": [ "observation", "kinesis", "sensor" ], "dependencies": { "pip": [ "boto3>=1.20.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/kinesis_observation_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/kinesis_observation_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/kinesis_observation_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/kinesis_observation_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/kinesis_observation_sensor/requirements.txt", "icon": "Eye", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "AWS", "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:kinesis" ] }, { "id": "kinesis_to_database_asset", "name": "Kinesis to Database", "category": "ingestion", "description": "Read records from a Kinesis Data Stream and write them to a database table.", "path": "assets/ingestion/kinesis_to_database_asset", "tags": [ "ingestion", "kinesis", "database", "asset" ], "icon": "ArrowUpFromLine", "type": "dagster_component_templates.KinesisToDatabaseAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/kinesis_to_database_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/kinesis_to_database_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/kinesis_to_database_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/kinesis_to_database_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/kinesis_to_database_asset/requirements.txt", "component_type": "dagster_component_templates.KinesisToDatabaseAssetComponent", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "AWS", "agent_hints": { "inputs": "None (root ingestion) \u2014 consumes from Kinesis stream, writes to DB.", "outputs": "None (sink-like).", "side_effects": "Requires aws_credentials + database_connection.", "anti_uses": "For Kafka use kafka_to_database_asset. For Pub/Sub use pubsub_to_database_asset.", "requires_resources": [ "aws_credentials", "database_connection" ], "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "boto3", "pandas", "sqlalchemy" ] }, "produces": [ "asset" ], "consumes": [ "resource:kinesis" ] }, { "id": "label_encoder", "name": "Label Encoder", "category": "transformation", "description": "Encode categorical columns into integer codes (frequency, alphabetical, or appearance order).", "path": "assets/transforms/label_encoder", "tags": [ "transformation", "label_encoding", "feature_engineering", "categorical", "ml" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/label_encoder/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/label_encoder/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/label_encoder/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/label_encoder/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/label_encoder/requirements.txt", "icon": "Hash", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/ml_features.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with categorical string columns.", "outputs": "Same DataFrame with the encoded columns replaced by integer codes (0..N-1).", "side_effects": "REPLACES source column values with integers. Original strings LOST unless preserved separately.", "anti_uses": "For binary or few-value categoricals with a natural ordering only. For nominal categoricals use one_hot_encoding.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "lakefs_asset", "name": "lakeFS Asset", "category": "analytics", "description": "Interact with a lakeFS repository for data versioning as a Dagster asset.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/lakefs_asset", "tags": [ "analytics", "lakefs", "asset" ], "dependencies": { "pip": [ "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/lakefs_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/lakefs_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/lakefs_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/lakefs_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/lakefs_asset/requirements.txt", "icon": "BarChart2", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "lakefs_io_manager", "name": "LakeFS IO Manager", "category": "io_manager", "description": "Register an IO manager that stores assets as Parquet files on a lakeFS repository (Git-for-data over S3-compatible storage)", "version": "0.1.0", "author": "Dagster Labs", "path": "io_managers/lakefs_io_manager", "tags": [ "io_manager", "lakefs", "versioning", "git-for-data", "parquet", "object-storage" ], "dependencies": { "pip": [ "s3fs>=2023.1.0", "pandas>=1.5.0", "pyarrow>=12.0.0", "lakefs>=0.7.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/lakefs_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/lakefs_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/lakefs_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/lakefs_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/lakefs_io_manager/requirements.txt", "icon": "si:databricks", "x-dagster-provides": [ "io_manager" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "lance_io_manager", "name": "Lance IO Manager", "category": "io_manager", "description": "Register a LanceDB IO manager for ML-optimised columnar storage ideal for embeddings and vector data", "version": "0.1.0", "author": "Dagster Labs", "path": "io_managers/lance_io_manager", "tags": [ "io_manager", "lance", "lancedb", "vector", "embeddings", "ml" ], "dependencies": { "pip": [ "lancedb>=0.5.0", "pandas>=1.5.0", "pyarrow>=12.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/lance_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/lance_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/lance_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/lance_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/lance_io_manager/requirements.txt", "icon": "si:pytorch", "x-dagster-provides": [ "io_manager" ], "validation": { "level": "live", "last_validated": "2026-05-19", "evidence": "setup_local_io_demo.sh" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "langchain_chain_asset", "name": "LangChain Chain Asset", "category": "ai", "description": "Run a LangChain chain over rows from an upstream asset DataFrame and return enriched DataFrame.", "path": "assets/ai/langchain_chain_asset", "tags": [ "ai", "langchain", "chain", "asset", "agentic" ], "icon": "Sparkles", "type": "dagster_component_templates.LangChainChainAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/langchain_chain_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/langchain_chain_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/langchain_chain_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/langchain_chain_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/langchain_chain_asset/requirements.txt", "component_type": "dagster_component_templates.LangChainChainAssetComponent", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/llm_execution.md", "last_validated": "2026-05-08" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "langchain-core", "langchain-openai", "pandas", "sqlalchemy" ] }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "langgraph_agent", "name": "LangGraph Agent", "category": "ai", "description": "Multi-step LangGraph StateGraph as a Dagster asset. Each step is an LLM call over shared state; supports conditional routing.", "path": "assets/ai/langgraph_agent", "tags": [ "ai", "langgraph", "agent", "graph", "llm", "agentic" ], "icon": "Sparkles", "type": "dagster_community_components.LangGraphAgentComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/langgraph_agent/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/langgraph_agent/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/langgraph_agent/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/langgraph_agent/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/langgraph_agent/requirements.txt", "component_type": "dagster_community_components.LangGraphAgentComponent", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/langgraph_agent.md", "last_validated": "2026-07-02" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "langgraph", "langchain-core", "langchain-openai" ] }, "produces": [ "asset" ], "agent_hints": { "output_type": "pd.DataFrame" } }, { "id": "language_detector", "name": "Language Detector", "category": "ai", "description": "Detect the language of text in a column and output ISO 639-1 language codes.", "path": "assets/ai/language_detector", "tags": [ "ai", "nlp", "language-detection", "multilingual" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/language_detector/schema.json", "component_type": "dagster_component_templates.LanguageDetectorComponent", "icon": "Globe", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/language_detector/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/language_detector/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/language_detector/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/language_detector/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/ai_no_llm.md", "last_validated": "2026-05-08" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "langdetect" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "lead_scoring", "name": "Lead Scoring", "category": "analytics", "description": "Component that scores and qualifies leads for sales prioritization.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/lead_scoring", "tags": [ "analytics", "lead", "scoring" ], "dependencies": { "pip": [] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/lead_scoring/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/lead_scoring/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/lead_scoring/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/lead_scoring/example.yaml", "icon": "BarChart2", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/lead_scoring/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with lead features + conversion labels (or scoring rules).", "outputs": "DataFrame + score column.", "side_effects": "Requires sklearn if ML-based; pure pandas if rule-based.", "requires_pip": [ "sklearn" ] }, "produces": [ "asset" ] }, { "id": "legal_document_extractor", "name": "Legal Document Extractor", "category": "ai", "description": "Extract key information from legal documents (NDAs, agreements, pleadings, briefs) using an LLM.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/legal_document_extractor", "tags": [ "ai", "extraction", "legal", "documents" ], "dependencies": { "pip": [ "dagster", "pandas>=1.5.0", "litellm>=1.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/legal_document_extractor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/legal_document_extractor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/legal_document_extractor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/legal_document_extractor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/legal_document_extractor/requirements.txt", "icon": "FileText", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/document_extractors.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "lift_chart", "name": "Lift Chart", "category": "analytics", "description": "Compute a lift/gains chart from actual binary labels and predicted probabilities.", "path": "assets/analytics/lift_chart", "tags": [ "analytics", "lift", "chart" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/lift_chart/schema.json", "component_type": "dagster_component_templates.LiftChartComponent", "icon": "BarChart2", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/lift_chart/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/lift_chart/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/lift_chart/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/lift_chart/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with predicted probabilities + actual labels.", "outputs": "DataFrame representing the lift curve (decile-based).", "side_effects": "Reduces to N deciles. Requires sklearn.", "requires_pip": [ "sklearn" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "lineage_graph_extractor", "name": "Lineage Graph Extractor", "category": "source", "description": "Materialize the canonical Dagster asset lineage graph (nodes + edges + source system identity) as an asset. Downstream lineage_to_ components fan out from this single source so multiple catalogs stay in lock-step.", "path": "assets/sources/lineage_graph_extractor", "tags": [ "source", "lineage", "catalog", "metadata" ], "type": "dagster_component_templates.LineageGraphExtractorComponent", "component_type": "dagster_component_templates.LineageGraphExtractorComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/lineage_graph_extractor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/lineage_graph_extractor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/lineage_graph_extractor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/lineage_graph_extractor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/lineage_graph_extractor/requirements.txt", "icon": "Network", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/lineage_catalogs.md", "last_validated": "2026-05-06" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "requests" ] }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "lineage_to_alation", "name": "Lineage \u2192 Alation", "category": "sink", "description": "Sink asset that pushes the upstream lineage_graph to Alation Data Catalog.", "path": "assets/sinks/lineage_to_alation", "tags": [ "sink", "lineage", "catalog", "alation" ], "type": "dagster_component_templates.LineageToAlationComponent", "component_type": "dagster_component_templates.LineageToAlationComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_alation/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_alation/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_alation/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_alation/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_alation/requirements.txt", "icon": "ArrowRightLeft", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/lineage_catalogs.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame of lineage records (source_asset, target_asset, transformation, etc.).", "outputs": "None (sink \u2014 pushes lineage into Alation).", "side_effects": "Idempotent updates to Alation's lineage graph. May create nodes if absent.", "anti_uses": "For consuming lineage FROM Alation into Dagster catalog assets, use a dedicated source (if available).", "requires_resources": [ "alation_resource" ] }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "requests" ] }, "produces": [ "asset" ], "consumes": [ "resource:alation" ] }, { "id": "lineage_to_collibra", "name": "Lineage \u2192 Collibra", "category": "sink", "description": "Sink asset that pushes the upstream lineage_graph to Collibra Data Intelligence Platform.", "path": "assets/sinks/lineage_to_collibra", "tags": [ "sink", "lineage", "catalog", "collibra" ], "type": "dagster_component_templates.LineageToCollibraComponent", "component_type": "dagster_component_templates.LineageToCollibraComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_collibra/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_collibra/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_collibra/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_collibra/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_collibra/requirements.txt", "icon": "ArrowRightLeft", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/lineage_catalogs.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame of lineage records (source_asset, target_asset, transformation, etc.).", "outputs": "None (sink \u2014 pushes lineage into Collibra).", "side_effects": "Idempotent updates to Collibra's lineage graph. May create nodes if absent.", "anti_uses": "For consuming lineage FROM Collibra into Dagster catalog assets, use a dedicated source (if available).", "requires_resources": [ "collibra_resource" ] }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "requests" ] }, "produces": [ "asset" ], "consumes": [ "resource:collibra" ] }, { "id": "lineage_to_data360", "name": "Lineage to Precisely Data360 Govern", "category": "sink", "description": "Push Dagster lineage_graph into Precisely Data360 Govern (the catalog formerly known as Infogix). OAuth2 client-credentials; upserts assets + lineage edges via the catalog REST API.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/sinks/lineage_to_data360", "tags": [ "sink", "lineage", "precisely", "data360", "catalog" ], "dependencies": { "pip": [ "requests>=2.28.0" ] }, "icon": "Network", "validation": { "level": "code", "last_validated": "2026-05-27", "evidence": "Awaiting customer pilot with a real Data360 tenant; YAML loads + sink asset builds cleanly." }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_data360/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_data360/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_data360/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_data360/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_data360/requirements.txt", "vendor": "Precisely", "agent_hints": { "inputs": "DataFrame of lineage records (source_asset, target_asset, transformation, etc.).", "outputs": "None (sink \u2014 pushes lineage into Data360).", "side_effects": "Idempotent updates to Data360's lineage graph. May create nodes if absent.", "anti_uses": "For consuming lineage FROM Data360 into Dagster catalog assets, use a dedicated source (if available).", "requires_resources": [ "data360_resource" ] }, "produces": [ "asset" ], "consumes": [ "resource:data360" ] }, { "id": "lineage_to_datahub", "name": "Lineage \u2192 DataHub", "category": "sink", "description": "Sink asset that pushes the upstream lineage_graph to DataHub via Rest.li ingestProposal.", "path": "assets/sinks/lineage_to_datahub", "tags": [ "sink", "lineage", "catalog", "datahub" ], "type": "dagster_component_templates.LineageToDataHubComponent", "component_type": "dagster_component_templates.LineageToDataHubComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_datahub/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_datahub/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_datahub/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_datahub/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_datahub/requirements.txt", "icon": "ArrowRightLeft", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/lineage_to_datahub.md", "last_validated": "2026-06-04" }, "agent_hints": { "inputs": "DataFrame of lineage records (source_asset, target_asset, transformation, etc.).", "outputs": "None (sink \u2014 pushes lineage into DataHub).", "side_effects": "Idempotent updates to DataHub's lineage graph. May create nodes if absent.", "anti_uses": "For consuming lineage FROM DataHub into Dagster catalog assets, use a dedicated source (if available).", "requires_resources": [ "datahub_resource" ] }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "requests" ] }, "produces": [ "asset" ], "consumes": [ "resource:datahub" ] }, { "id": "lineage_to_file", "name": "Lineage \u2192 JSON File", "category": "sink", "description": "Sink asset that writes the upstream lineage_graph as JSON to a local or mounted path. For demos, debugging, audit trails.", "path": "assets/sinks/lineage_to_file", "tags": [ "sink", "lineage", "catalog", "file" ], "type": "dagster_component_templates.LineageToFileComponent", "component_type": "dagster_component_templates.LineageToFileComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_file/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_file/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_file/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_file/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_file/requirements.txt", "icon": "ArrowRightLeft", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/lineage_catalogs.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame of lineage records.", "outputs": "None (sink \u2014 writes lineage records to a file per config format).", "side_effects": "Writes to `file_path`. Format: json / csv / OpenLineage per config.", "anti_uses": "For catalog-native push use lineage_to_. For programmatic delivery use lineage_to_webhook." }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "requests" ] }, "produces": [ "asset" ] }, { "id": "lineage_to_openmetadata", "name": "Lineage \u2192 OpenMetadata", "category": "sink", "description": "Sink asset that pushes the upstream lineage_graph payload to OpenMetadata via REST API. Maps Dagster's asset graph onto OpenMetadata's service\u2192database\u2192schema\u2192table hierarchy with lineage edges between tables.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/sinks/lineage_to_openmetadata", "tags": [ "sink", "lineage", "openmetadata", "catalog", "governance" ], "vendor": "OpenMetadata", "dependencies": { "pip": [ "requests>=2.28" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_openmetadata/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_openmetadata/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_openmetadata/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_openmetadata/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_openmetadata/requirements.txt", "validation": { "level": "code", "last_validated": "2026-06-04" }, "agent_hints": { "inputs": "DataFrame of lineage records (source_asset, target_asset, transformation, etc.).", "outputs": "None (sink \u2014 pushes lineage into OpenMetadata).", "side_effects": "Idempotent updates to OpenMetadata's lineage graph. May create nodes if absent.", "anti_uses": "For consuming lineage FROM OpenMetadata into Dagster catalog assets, use a dedicated source (if available).", "requires_resources": [ "openmetadata_resource" ] }, "produces": [ "asset" ], "consumes": [ "resource:openmetadata" ] }, { "id": "lineage_to_purview", "name": "Lineage \u2192 Microsoft Purview", "category": "sink", "description": "Sink asset that pushes the upstream lineage_graph to Microsoft Purview Data Map (Apache Atlas v2 entity bulk API).", "path": "assets/sinks/lineage_to_purview", "tags": [ "sink", "lineage", "catalog", "purview" ], "type": "dagster_component_templates.LineageToPurviewComponent", "component_type": "dagster_component_templates.LineageToPurviewComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_purview/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_purview/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_purview/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_purview/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_purview/requirements.txt", "icon": "ArrowRightLeft", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/lineage_catalogs.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame of lineage records (source_asset, target_asset, transformation, etc.).", "outputs": "None (sink \u2014 pushes lineage into Microsoft Purview).", "side_effects": "Idempotent updates to Microsoft Purview's lineage graph. May create nodes if absent.", "anti_uses": "For consuming lineage FROM Microsoft Purview into Dagster catalog assets, use a dedicated source (if available).", "requires_resources": [ "azure_credentials" ] }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "requests" ] }, "produces": [ "asset" ], "consumes": [ "resource:purview" ] }, { "id": "lineage_to_webhook", "name": "Lineage \u2192 HTTP Webhook", "category": "sink", "description": "Sink asset that POSTs the raw upstream lineage_graph to any HTTP webhook (Slack, internal endpoint, n8n). Optional Bearer auth.", "path": "assets/sinks/lineage_to_webhook", "tags": [ "sink", "lineage", "catalog", "webhook" ], "type": "dagster_component_templates.LineageToWebhookComponent", "component_type": "dagster_component_templates.LineageToWebhookComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_webhook/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_webhook/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_webhook/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_webhook/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/lineage_to_webhook/requirements.txt", "icon": "ArrowRightLeft", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/lineage_catalogs.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame of lineage records.", "outputs": "None (sink \u2014 POSTs lineage payloads to a webhook URL).", "side_effects": "One POST per row (or batched per config)." }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "requests" ] }, "produces": [ "asset" ] }, { "id": "linear_issue_sensor", "name": "LinearIssueSensor", "category": "sensor", "description": "Trigger a run when Linear has new or updated issues matching a team/state filter.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/linear_issue_sensor", "tags": [ "sensor", "linear", "issue-tracking" ], "dependencies": { "pip": [ "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/linear_issue_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/linear_issue_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/linear_issue_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/linear_issue_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/linear_issue_sensor/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:linear" ] }, { "id": "linear_regression_model", "name": "Linear Regression", "category": "analytics", "description": "Fit a linear regression model and output predictions and/or model coefficients.", "path": "assets/analytics/linear_regression_model", "tags": [ "analytics", "linear", "regression", "model" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/linear_regression_model/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/linear_regression_model/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/linear_regression_model/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/linear_regression_model/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/linear_regression_model/requirements.txt", "icon": "si:linear", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with numeric feature columns AND a numeric target column.", "outputs": "DataFrame with test-set rows + columns: ground truth, predictions, residuals.", "side_effects": "sklearn dependency. OUTPUT is the test set only, not the full input.", "anti_uses": "Target must be numeric/continuous. For binary classification use logistic_regression_model. Feature columns must be numeric \u2014 one-hot encode categoricals FIRST.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "scikit-learn" ] }, "produces": [ "asset", "asset_check" ], "consumes": [ "resource:linear" ] }, { "id": "linkedin_ads_ingestion", "name": "LinkedIn Ads Ingestion", "category": "ingestion", "description": "Component for ingesting LinkedIn Ads data using dlt - returns DataFrames.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/linkedin_ads_ingestion", "tags": [ "ingestion", "linkedin", "ads" ], "dependencies": { "pip": [ "dlt[rest_api]>=0.4.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/linkedin_ads_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/linkedin_ads_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/linkedin_ads_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/linkedin_ads_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/linkedin_ads_ingestion/requirements.txt", "icon": "si:linkedin", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 hits vendor's REST API.", "outputs": "DataFrame with columns from LinkedIn Ads campaigns, ad performance.", "side_effects": "Read-only. Requires LinkedIn Ads API credentials. Rate-limited per LinkedIn Ads's tier.", "anti_uses": "For generic REST APIs use rest_api_fetcher. For writing back to LinkedIn Ads use its dedicated writer (if available).", "requires_resources": [ "linkedin_ads_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "linkedin_ads_resource", "name": "LinkedIn Ads Resource", "category": "resource", "description": "Register a LinkedInAdsResource for the LinkedIn Marketing API for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/linkedin_ads_resource", "tags": [ "resource", "linkedin", "ads", "marketing" ], "dependencies": { "pip": [ "linkedin-api" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/linkedin_ads_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/linkedin_ads_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/linkedin_ads_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/linkedin_ads_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/linkedin_ads_resource/requirements.txt", "icon": "si:linkedin", "x-dagster-provides": [ "linkedin_ads_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "litellm_agent", "name": "LiteLLM Agent", "category": "ai", "description": "Single-shot LLM agent with Model Context Protocol (MCP) tool support, via LiteLLM (100+ providers). Runs a tool-calling loop until the model returns a final answer or max_iterations is hit.", "path": "assets/ai/litellm_agent", "tags": [ "ai", "llm", "agent", "mcp", "tool-use", "litellm", "agentic" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_agent/schema.json", "component_type": "dagster_component_templates.LiteLLMAgentComponent", "icon": "Bot", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_agent/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_agent/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_agent/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_agent/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/litellm_agent.md", "last_validated": "2026-06-04" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "litellm", "mcp" ] }, "produces": [ "asset" ], "agent_hints": { "output_type": "pd.DataFrame" }, "consumes": [ "resource:litellm" ] }, { "id": "litellm_audio_transcription", "name": "Litellm Audio Transcription", "category": "ai", "description": "Transcribe audio files referenced in a DataFrame column using Whisper via LiteLLM and write transcription text to a new column.", "path": "assets/ai/litellm_audio_transcription", "tags": [ "ai", "audio", "transcription", "whisper", "litellm", "speech-to-text" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_audio_transcription/schema.json", "component_type": "dagster_component_templates.LitellmAudioTranscriptionComponent", "icon": "si:openai", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_audio_transcription/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_audio_transcription/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_audio_transcription/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_audio_transcription/requirements.txt", "validation": { "level": "live", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "litellm", "pandas" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "consumes": [ "resource:litellm" ] }, { "id": "litellm_batch_completion", "name": "Litellm Batch Completion", "category": "ai", "description": "Process a DataFrame column row-by-row through any LLM using LiteLLM with parallel threads, fallback routing, and cost tracking.", "path": "assets/ai/litellm_batch_completion", "tags": [ "ai", "llm", "litellm", "batch", "completion", "parallel" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_batch_completion/schema.json", "component_type": "dagster_component_templates.LitellmBatchCompletionComponent", "icon": "si:openai", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_batch_completion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_batch_completion/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_batch_completion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_batch_completion/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/llm_execution.md", "last_validated": "2026-05-08" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "litellm", "pandas" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "consumes": [ "resource:litellm" ] }, { "id": "litellm_embedding_batch", "name": "Litellm Embedding Batch", "category": "ai", "description": "Generate embedding vectors for a text column using LiteLLM with configurable batching, fallback model routing, and optional dimension control.", "path": "assets/ai/litellm_embedding_batch", "tags": [ "ai", "embeddings", "litellm", "vectors", "semantic-search", "nlp" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_embedding_batch/schema.json", "component_type": "dagster_component_templates.LitellmEmbeddingBatchComponent", "icon": "si:openai", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_embedding_batch/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_embedding_batch/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_embedding_batch/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_embedding_batch/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/multimodal_ai.md", "last_validated": "2026-05-08" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "litellm", "pandas" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "consumes": [ "resource:litellm" ] }, { "id": "litellm_function_calling", "name": "Litellm Function Calling", "category": "ai", "description": "Use LiteLLM function/tool calling to invoke structured tool definitions against each DataFrame row and write tool call results as JSON.", "path": "assets/ai/litellm_function_calling", "tags": [ "ai", "llm", "litellm", "function-calling", "tool-use", "routing", "agentic" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_function_calling/schema.json", "component_type": "dagster_component_templates.LitellmFunctionCallingComponent", "icon": "si:openai", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_function_calling/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_function_calling/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_function_calling/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_function_calling/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/llm_execution.md", "last_validated": "2026-05-08" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "litellm", "pandas" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "consumes": [ "resource:litellm" ] }, { "id": "litellm_image_generation", "name": "Litellm Image Generation", "category": "ai", "description": "Generate images from text prompts in a DataFrame column using LiteLLM, supporting DALL-E, Stable Diffusion, and other image generation models.", "path": "assets/ai/litellm_image_generation", "tags": [ "ai", "image-generation", "litellm", "dall-e", "stable-diffusion", "multimodal" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_image_generation/schema.json", "component_type": "dagster_component_templates.LitellmImageGenerationComponent", "icon": "si:openai", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_image_generation/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_image_generation/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_image_generation/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_image_generation/requirements.txt", "validation": { "level": "live", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "litellm", "pandas" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "consumes": [ "resource:litellm" ] }, { "id": "litellm_inference_asset", "name": "LiteLLM Inference Asset", "category": "ai", "description": "Shared LiteLLM configuration for use across multiple components.", "path": "assets/ai/litellm_inference_asset", "tags": [ "ai", "litellm", "inference", "asset" ], "icon": "si:openai", "type": "dagster_component_templates.LiteLLMInferenceAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_inference_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_inference_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_inference_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_inference_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_inference_asset/requirements.txt", "component_type": "dagster_component_templates.LiteLLMInferenceAssetComponent", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/litellm_multi_provider.md", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "litellm", "pandas", "sqlalchemy" ] }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "consumes": [ "resource:litellm" ] }, { "id": "litellm_structured_output", "name": "Litellm Structured Output", "category": "ai", "description": "Extract structured JSON data from text using LiteLLM's JSON mode and expand extracted fields as new DataFrame columns.", "path": "assets/ai/litellm_structured_output", "tags": [ "ai", "llm", "litellm", "structured-output", "extraction", "json", "agentic" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_structured_output/schema.json", "component_type": "dagster_component_templates.LitellmStructuredOutputComponent", "icon": "si:openai", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_structured_output/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_structured_output/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_structured_output/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_structured_output/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/llm_execution.md", "last_validated": "2026-05-08" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "litellm", "pandas" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame" }, "consumes": [ "resource:litellm" ] }, { "id": "litellm_text_to_speech", "name": "Litellm Text To Speech", "category": "ai", "description": "Multi-provider text-to-speech via LiteLLM.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/litellm_text_to_speech", "tags": [ "litellm-text-to-speech", "ai" ], "dependencies": { "pip": [ "litellm", "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_text_to_speech/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_text_to_speech/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_text_to_speech/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_text_to_speech/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/litellm_text_to_speech/requirements.txt", "validation": { "level": "code", "evidence": "", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "consumes": [ "resource:litellm" ] }, { "id": "llm_chain_executor", "name": "LLM Chain", "category": "ai", "description": "Component for executing LLM chains row-by-row over an upstream DataFrame.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/llm_chain_executor", "tags": [ "ai", "llm", "chain", "executor", "agentic" ], "dependencies": { "pip": [ "openai>=1.0.0", "anthropic>=0.18.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/llm_chain_executor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/llm_chain_executor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/llm_chain_executor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/llm_chain_executor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/llm_chain_executor/requirements.txt", "icon": "Sparkles", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/llm_execution.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "llm_evaluator", "name": "LLM Evaluator (LLM-as-Judge)", "category": "ai", "description": "LLM-as-judge evaluator. Pass-through asset that takes an upstream agent / LLM output and scores it on configurable feedbacks (answer_relevance, groundedness, context_relevance, harmfulness, helpfulness, coherence). Same conceptual model as TruLens \u2014 without the framework dep.", "path": "assets/ai/llm_evaluator", "tags": [ "ai", "llm", "evaluation", "llm-as-judge", "trulens-pattern", "agentic" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/llm_evaluator/schema.json", "component_type": "dagster_component_templates.LLMEvaluatorComponent", "icon": "ClipboardCheck", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/llm_evaluator/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/llm_evaluator/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/llm_evaluator/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/llm_evaluator/requirements.txt", "validation": { "level": "live", "evidence": "Live-validated against the dagster_plus_agent_run output \u2014 all 4 evaluations (answer_relevance, helpfulness, harmfulness, coherence) scored with sensible 0.0-1.0 values + reasons.", "last_validated": "2026-06-04" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "litellm" ] }, "produces": [ "asset" ], "agent_hints": { "output_type": "pd.DataFrame" } }, { "id": "llm_judge", "name": "LLM Judge", "category": "ai", "description": "Evaluate and score LLM outputs against configurable criteria using another LLM as a judge, writing numeric scores and reasoning to new columns.", "path": "assets/ai/llm_judge", "tags": [ "ai", "evaluation", "llm-judge", "quality-assessment", "litellm", "testing", "agentic" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/llm_judge/schema.json", "component_type": "dagster_component_templates.LlmJudgeComponent", "icon": "Star", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/llm_judge/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/llm_judge/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/llm_judge/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/llm_judge/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/llm_execution.md", "last_validated": "2026-05-08" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "litellm", "pandas" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "llm_output_parser", "name": "LLM Output Parser", "category": "ai", "description": "Component for parsing LLM output column in an upstream DataFrame.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/llm_output_parser", "tags": [ "ai", "llm", "output", "parser", "agentic" ], "dependencies": { "pip": [ "pandas>=2.0.0", "jsonschema>=4.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/llm_output_parser/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/llm_output_parser/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/llm_output_parser/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/llm_output_parser/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/llm_output_parser/requirements.txt", "icon": "Sparkles", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/local_nlp.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "llm_prompt_executor", "name": "LLM Prompt", "category": "ai", "description": "Component for executing prompts against LLM APIs row-by-row over an upstream DataFrame.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/llm_prompt_executor", "tags": [ "ai", "llm", "prompt", "executor", "agentic" ], "dependencies": { "pip": [ "openai>=1.0.0", "anthropic>=0.18.0", "cohere>=4.0.0", "huggingface-hub>=0.20.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/llm_prompt_executor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/llm_prompt_executor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/llm_prompt_executor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/llm_prompt_executor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/llm_prompt_executor/requirements.txt", "icon": "Sparkles", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/llm_execution.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "local_csv_io_manager", "name": "LocalCsvIOManager", "category": "io_manager", "description": "Store DataFrames as CSV files on the local filesystem (dev / human-inspectable).", "version": "1.0.0", "author": "Dagster Community", "path": "io_managers/local_csv_io_manager", "tags": [ "io_manager", "csv", "local", "dev" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/local_csv_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/local_csv_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/local_csv_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/local_csv_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/local_csv_io_manager/requirements.txt", "validation": { "level": "live", "last_validated": "2026-05-19", "evidence": "setup_local_io_demo.sh" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "local_json_io_manager", "name": "LocalJsonIOManager", "category": "io_manager", "description": "Store DataFrames as JSON Lines (.jsonl) files on the local filesystem.", "version": "1.0.0", "author": "Dagster Community", "path": "io_managers/local_json_io_manager", "tags": [ "io_manager", "json", "local", "dev" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/local_json_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/local_json_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/local_json_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/local_json_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/local_json_io_manager/requirements.txt", "validation": { "level": "live", "last_validated": "2026-05-19", "evidence": "setup_local_io_demo.sh" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "local_parquet_io_manager", "name": "LocalParquetIOManager", "category": "io_manager", "description": "Store DataFrames as Parquet files on the local filesystem (dev / no-warehouse).", "version": "1.0.0", "author": "Dagster Community", "path": "io_managers/local_parquet_io_manager", "tags": [ "io_manager", "parquet", "local", "dev" ], "dependencies": { "pip": [ "pandas", "pyarrow" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/local_parquet_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/local_parquet_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/local_parquet_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/local_parquet_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/local_parquet_io_manager/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/local_transforms.md", "last_validated": "2026-05-14" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "logistic_regression_model", "name": "Logistic Regression", "category": "analytics", "description": "Fit a logistic regression classifier and output predictions.", "path": "assets/analytics/logistic_regression_model", "tags": [ "analytics", "logistic", "regression", "model" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/logistic_regression_model/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/logistic_regression_model/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/logistic_regression_model/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/logistic_regression_model/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/logistic_regression_model/requirements.txt", "icon": "BarChart2", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/titanic_complete.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with numeric feature columns AND a binary target column.", "outputs": "DataFrame with test-set rows + columns: ground truth (target_column), predictions, and probabilities.", "side_effects": "sklearn dependency. Uses test_size for held-out split; the OUTPUT is the test set only, not the full input.", "anti_uses": "Target must be binary/0-1. Not for regression (use linear_regression_model). Feature columns must be numeric \u2014 one-hot encode categoricals FIRST.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "scikit-learn" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "looker_assets", "name": "LookerAssets", "category": "integration", "description": "Import Looker LookML views + dashboards as Dagster external assets via dagster-looker.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/looker_assets", "tags": [ "integration", "looker", "bi", "official" ], "dependencies": { "pip": [ "dagster", "dagster-looker" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/looker_assets/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/looker_assets/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/looker_assets/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/looker_assets/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/looker_assets/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "lookup", "name": "LookupComponent", "category": "transformation", "description": "Inline lookup \u2014 left-join an upstream DataFrame against a smaller reference DataFrame, optionally caching the reference per run.", "version": "1.0.0", "author": "Dagster Community", "path": "transforms/lookup", "tags": [ "lookup", "join", "reference", "enrich" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/lookup/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/lookup/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/lookup/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/lookup/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/lookup/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/transformations.md", "last_validated": "2026-05-14" }, "agent_hints": { "inputs": "DataFrame + a lookup source (via upstream key or config table) + join key.", "outputs": "DataFrame with looked-up value columns appended.", "side_effects": "Adds columns. Left-join semantics \u2014 no row count change unless multiple matches.", "anti_uses": "For multi-key joins use dataframe_join. For fuzzy matching use fuzzy_match." }, "produces": [ "asset" ] }, { "id": "ltv_prediction", "name": "LTV Prediction", "category": "analytics", "description": "Component for predicting customer lifetime value.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/ltv_prediction", "tags": [ "analytics", "ltv", "prediction" ], "dependencies": { "pip": [] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ltv_prediction/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ltv_prediction/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ltv_prediction/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ltv_prediction/example.yaml", "icon": "BarChart2", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ltv_prediction/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/retail_ltv.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with customer transaction history.", "outputs": "DataFrame + `predicted_ltv` column.", "side_effects": "Adds column. Requires sklearn or lifetimes (BG/NBD models).", "requires_pip": [ "sklearn" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ] }, { "id": "make_columns", "name": "Make Columns", "category": "transformation", "description": "Reshape a single column of values into a wide multi-column format.", "path": "assets/transforms/make_columns", "tags": [ "transformation", "make", "columns" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/make_columns/schema.json", "component_type": "dagster_component_templates.MakeColumnsComponent", "icon": "Shuffle", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/make_columns/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/make_columns/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/make_columns/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/make_columns/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/transformations.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "Any DataFrame.", "outputs": "Same rows + N new columns per config.", "side_effects": "Adds columns. Doesn't remove existing.", "anti_uses": "For pandas-eval expressions use formula. For type conversion use type_coercer.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "make_grid", "name": "MakeGrid", "category": "analytics", "description": "Generate a regular grid of square polygons covering the bounding box of input geometries.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/make_grid", "tags": [ "analytics", "spatial", "geopandas", "grid", "tiling" ], "dependencies": { "pip": [ "pandas", "geopandas", "shapely", "numpy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/make_grid/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/make_grid/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/make_grid/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/make_grid/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/make_grid/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/store_coverage.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "Bounding box columns (min_lat, max_lat, min_lon, max_lon) or a bounding polygon.", "outputs": "DataFrame with grid cells (polygon geometry + cell_id).", "side_effects": "Row count = grid_x \u00d7 grid_y cells.", "requires_pip": [ "shapely" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "make_group", "name": "MakeGroup", "category": "transformation", "description": "Assign a group ID per unique combination of key columns.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/make_group", "tags": [ "transformation", "preparation", "grouping" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/make_group/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/make_group/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/make_group/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/make_group/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/make_group/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/transformations.md", "last_validated": "2026-05-14" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "map_values", "name": "MapValuesComponent", "category": "transformation", "description": "Replace values in a column according to a lookup dict \u2014 country code \u2192 country name, status code \u2192 status text, etc.", "version": "1.0.0", "author": "Dagster Community", "path": "transforms/map_values", "tags": [ "map-values", "replace", "translate" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/map_values/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/map_values/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/map_values/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/map_values/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/map_values/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/transformations.md", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "DataFrame with a column to remap.", "outputs": "Same DataFrame with values in the column replaced per mapping.", "side_effects": "Modifies values IN PLACE. Unmapped values become NaN (or kept per config).", "anti_uses": "For string substitutions use find_replace. For categorical \u2192 int use label_encoder." }, "produces": [ "asset" ] }, { "id": "markdown_stripper", "name": "Markdown Stripper", "category": "transformation", "description": "Strip markdown formatting from text columns, converting to plain text or HTML.", "path": "assets/transforms/markdown_stripper", "tags": [ "transformation", "documents", "markdown", "text-processing", "plaintext" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/markdown_stripper/schema.json", "component_type": "dagster_component_templates.MarkdownStripperComponent", "icon": "Type", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/markdown_stripper/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/markdown_stripper/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/markdown_stripper/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/markdown_stripper/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/transformations.md", "last_validated": "2026-05-14" }, "agent_hints": { "inputs": "DataFrame with a markdown-formatted string column.", "outputs": "Same DataFrame with the column's markdown syntax stripped to plain text.", "side_effects": "Modifies values IN PLACE.", "anti_uses": "For HTML use html_parser. For source truth preservation, add as a new column via formula.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "markdown", "beautifulsoup4" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "market_basket_rules", "name": "MarketBasketRules", "category": "analytics", "description": "Mine association rules from transaction data via apriori (mlxtend).", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/market_basket_rules", "tags": [ "analytics", "market-basket", "association-rules", "apriori" ], "dependencies": { "pip": [ "pandas", "mlxtend" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/market_basket_rules/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/market_basket_rules/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/market_basket_rules/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/market_basket_rules/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/market_basket_rules/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/market_basket.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with transactions (order_id + item_id).", "outputs": "DataFrame with association rules (antecedent \u2192 consequent) + support / confidence / lift.", "side_effects": "Requires mlxtend. Row count depends on min_support threshold.", "requires_pip": [ "mlxtend" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "marketing_data_standardizer", "name": "Marketing Data Standardizer", "category": "analytics", "description": "Component for standardizing marketing data across platforms.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/marketing_data_standardizer", "tags": [ "analytics", "marketing", "data", "standardizer" ], "dependencies": { "pip": [ "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/marketing_data_standardizer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/marketing_data_standardizer/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/marketing_data_standardizer/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/marketing_data_standardizer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/marketing_data_standardizer/requirements.txt", "icon": "BarChart2", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame from various marketing sources (email tools, CRMs).", "outputs": "DataFrame with unified marketing schema (contact_id, campaign, channel, action, timestamp)." }, "produces": [ "asset", "asset_check" ] }, { "id": "marketo_resource", "name": "Marketo Resource", "category": "resource", "description": "Marketo REST API client wrapper. OAuth client_credentials grant.", "path": "resources/marketo_resource", "tags": [ "resource", "marketo", "marketing", "saas" ], "type": "dagster_component_templates.MarketoResourceComponent", "component_type": "dagster_component_templates.MarketoResourceComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/marketo_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/marketo_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/marketo_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/marketo_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/marketo_resource/requirements.txt", "icon": "Megaphone", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/enterprise_saas.md", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "requests" ] }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "matillion_job_sensor", "name": "Matillion Job Sensor", "category": "sensor", "description": "Trigger a Dagster job when a Matillion ETL job run completes.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/matillion_job_sensor", "tags": [ "sensor", "matillion", "job" ], "dependencies": { "pip": [ "requests>=2.28.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/matillion_job_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/matillion_job_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/matillion_job_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/matillion_job_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/matillion_job_sensor/requirements.txt", "icon": "Radar", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "sensor" ], "agent_hints": {} }, { "id": "matillion_run_asset", "name": "Matillion Run Asset", "category": "infrastructure", "description": "Resource for connecting to the Matillion ETL REST API.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/infrastructure/matillion_run_asset", "tags": [ "infrastructure", "matillion", "run", "asset" ], "dependencies": { "pip": [ "requests>=2.28.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/matillion_run_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/matillion_run_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/matillion_run_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/matillion_run_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/matillion_run_asset/requirements.txt", "icon": "Server", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "matomo_ingestion", "name": "Matomo Ingestion", "category": "ingestion", "description": "Component for ingesting Matomo web analytics data using dlt.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/matomo_ingestion", "tags": [ "ingestion", "matomo" ], "dependencies": { "pip": [ "dlt[matomo]>=0.4.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/matomo_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/matomo_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/matomo_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/matomo_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/matomo_ingestion/requirements.txt", "icon": "ArrowUpFromLine", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 hits vendor's REST API.", "outputs": "DataFrame with columns from Matomo visits, actions, goals.", "side_effects": "Read-only. Requires Matomo API credentials. Rate-limited per Matomo's tier.", "anti_uses": "For generic REST APIs use rest_api_fetcher. For writing back to Matomo use its dedicated writer (if available).", "requires_resources": [ "matomo_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "mcp_tool_call", "name": "MCP Tool Call", "category": "source", "description": "Deterministic single-shot call to one MCP tool \u2014 no LLM in the loop. Args templating supports {partition_key} / {partition_keys.} / {run_id}, and the asset supports full Dagster pattern (partitions, kinds, FreshnessPolicy, RetryPolicy).", "path": "assets/sources/mcp_tool_call", "tags": [ "source", "mcp", "tool-call", "deterministic" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/mcp_tool_call/schema.json", "component_type": "dagster_component_templates.MCPToolCallComponent", "icon": "Network", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/mcp_tool_call/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/mcp_tool_call/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/mcp_tool_call/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/mcp_tool_call/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/litellm_agent.md", "last_validated": "2026-06-04" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "mcp" ] }, "agent_hints": { "inputs": "None \u2014 calls an MCP server's tool.", "outputs": "DataFrame with the tool call result.", "side_effects": "Requires an MCP server running + tool name." }, "produces": [ "asset" ] }, { "id": "mcp_tool_picker", "name": "MCP Tool Picker", "category": "ai", "description": "Planner LLM picks MCP tools + args to invoke from a bounded YAML-declared set. Each pick becomes a Dagster asset that actually calls the MCP server (stdio / http / sse); a synthesizer LLM writes the grounded final answer with per-tool citations. The 'agent picks MCPs' pattern with full lineage.", "path": "assets/ai/mcp_tool_picker", "tags": [ "ai", "agent", "agentic", "mcp", "supervisor", "planner", "multi-agent", "openai" ], "icon": "Sparkles", "type": "dagster_community_components.MCPToolPickerComponent", "component_type": "dagster_community_components.MCPToolPickerComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/mcp_tool_picker/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/mcp_tool_picker/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/mcp_tool_picker/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/mcp_tool_picker/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/mcp_tool_picker/requirements.txt", "dependencies": { "pip": [ "pandas", "openai>=1.0.0", "mcp>=1.0.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/mcp_tool_picker.md", "last_validated": "2026-07-07" }, "version": "1.0.0", "author": "Dagster Community", "produces": [ "asset" ], "agent_hints": { "output_type": "pd.DataFrame" } }, { "id": "medical_record_extractor", "name": "Medical Record Extractor", "category": "ai", "description": "Extract clinical data from medical records and clinical notes using an LLM.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/medical_record_extractor", "tags": [ "ai", "extraction", "medical", "healthcare" ], "dependencies": { "pip": [ "dagster", "pandas>=1.5.0", "litellm>=1.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/medical_record_extractor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/medical_record_extractor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/medical_record_extractor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/medical_record_extractor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/medical_record_extractor/requirements.txt", "icon": "Heart", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/document_extractors.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "minio_io_manager", "name": "MinIO IO Manager", "category": "io_manager", "description": "Register a Delta Lake IO manager pointed at MinIO for S3-compatible lakehouse storage", "version": "0.1.0", "author": "Dagster Labs", "path": "io_managers/minio_io_manager", "tags": [ "io_manager", "minio", "delta-lake", "s3", "lakehouse" ], "dependencies": { "pip": [ "deltalake>=0.15.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/minio_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/minio_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/minio_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/minio_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/minio_io_manager/requirements.txt", "icon": "si:minio", "x-dagster-provides": [ "io_manager" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "minio_resource", "name": "MinIO Resource", "category": "resource", "description": "Register a MinIO S3-compatible object storage resource for use by other components", "version": "0.1.0", "author": "Dagster Labs", "path": "resources/minio_resource", "tags": [ "resource", "minio", "s3", "object-storage", "lakehouse" ], "dependencies": { "pip": [ "minio>=7.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/minio_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/minio_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/minio_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/minio_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/minio_resource/requirements.txt", "icon": "si:minio", "x-dagster-provides": [ "minio_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "mlflow_experiment_sensor", "name": "MLflowExperimentSensor", "category": "sensor", "description": "Polls an MLflow experiment for new runs; fires a Dagster RunRequest per new run. Cursor-based dedup on run_id.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/mlflow_experiment_sensor", "tags": [ "mlflow", "sensor", "experiment", "ml", "mlops" ], "dependencies": { "pip": [ "mlflow>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/mlflow_experiment_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/mlflow_experiment_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/mlflow_experiment_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/mlflow_experiment_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/mlflow_experiment_sensor/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/mlflow_pipeline.md", "last_validated": "2026-07-20" }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:mlflow" ] }, { "id": "mlflow_model_inference", "name": "MLflowModelInference", "category": "ai", "description": "Materializable asset that loads a registered MLflow model (any pyfunc flavor) and scores an upstream DataFrame.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/mlflow_model_inference", "tags": [ "mlflow", "asset", "inference", "scoring", "ml", "mlops" ], "dependencies": { "pip": [ "mlflow>=2.0.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/mlflow_model_inference/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/mlflow_model_inference/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/mlflow_model_inference/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/mlflow_model_inference/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/mlflow_model_inference/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/mlflow_pipeline.md", "last_validated": "2026-07-20" }, "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:mlflow" ] }, { "id": "mlflow_model_promotion", "name": "MLflowModelPromotion", "category": "integration", "description": "Materializable asset that transitions an MLflow model version between stages (e.g. Staging \u2192 Production). Auditable ML CD step.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/mlflow_model_promotion", "tags": [ "mlflow", "asset", "promotion", "cd", "ml", "mlops", "registry" ], "dependencies": { "pip": [ "mlflow>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/mlflow_model_promotion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/mlflow_model_promotion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/mlflow_model_promotion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/mlflow_model_promotion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/mlflow_model_promotion/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/mlflow_pipeline.md", "last_validated": "2026-07-20" }, "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:mlflow" ] }, { "id": "mlflow_model_sensor", "name": "MLflow Model Sensor", "category": "sensor", "description": "Component that fires a RunRequest when an MLflow model transitions to a", "path": "sensors/mlflow_model_sensor", "tags": [ "sensor", "mlflow", "model" ], "icon": "Radar", "type": "dagster_component_templates.MLflowModelSensor", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/mlflow_model_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/mlflow_model_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/mlflow_model_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/mlflow_model_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/mlflow_model_sensor/requirements.txt", "component_type": "dagster_component_templates.MLflowModelSensor", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/mlflow_pipeline.md", "last_validated": "2026-07-20" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "mlflow" ] }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:mlflow" ] }, { "id": "mlflow_model_version_check", "name": "MLflowModelVersionCheck", "category": "check", "description": "Asset check that verifies an MLflow registered model's state (exists / at required stage / within a freshness window).", "version": "1.0.0", "author": "Dagster Community", "path": "asset_checks/mlflow_model_version_check", "tags": [ "mlflow", "asset_check", "registry", "ml", "mlops", "gate" ], "dependencies": { "pip": [ "mlflow>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/mlflow_model_version_check/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/mlflow_model_version_check/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/mlflow_model_version_check/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/mlflow_model_version_check/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/mlflow_model_version_check/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/mlflow_pipeline.md", "last_validated": "2026-07-20" }, "produces": [ "asset_check" ], "agent_hints": {}, "consumes": [ "resource:mlflow" ] }, { "id": "mlflow_resource", "name": "MLflow Resource", "category": "resource", "description": "Register an MLflow resource for experiment tracking and model registry", "version": "1.0.0", "author": "Dagster Community", "path": "resources/mlflow_resource", "tags": [ "resource", "mlflow", "ml", "experiment-tracking" ], "dependencies": { "pip": [ "mlflow" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/mlflow_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/mlflow_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/mlflow_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/mlflow_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/mlflow_resource/requirements.txt", "icon": "si:mlflow", "x-dagster-provides": [ "mlflow_resource" ], "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/mlflow_pipeline.md", "last_validated": "2026-07-20" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:mlflow" ] }, { "id": "modal_asset", "name": "Modal Asset", "category": "infrastructure", "description": "Trigger a Modal function as a Dagster asset.", "path": "assets/infrastructure/modal_asset", "tags": [ "infrastructure", "modal", "asset" ], "icon": "si:modal", "type": "dagster_component_templates.ModalAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/modal_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/modal_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/modal_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/modal_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/modal_asset/requirements.txt", "component_type": "dagster_component_templates.ModalAssetComponent", "validation": { "level": "code", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "modal" ] }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "model_coefficients", "name": "ModelCoefficients", "category": "analytics", "description": "Fit a linear or logistic regression and emit one row per coefficient (\u03b2 + std error + p-value).", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/model_coefficients", "tags": [ "analytics", "regression", "diagnostics", "explainability" ], "dependencies": { "pip": [ "pandas", "scikit-learn", "statsmodels", "numpy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/model_coefficients/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/model_coefficients/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/model_coefficients/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/model_coefficients/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/model_coefficients/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "A fitted linear/logistic model asset.", "outputs": "DataFrame with feature names + coefficients + p-values (if statsmodels).", "side_effects": "Introspection asset. Requires the upstream model's pickle format.", "requires_pip": [ "sklearn" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "model_comparison", "name": "Model Comparison", "category": "analytics", "description": "Train and evaluate multiple sklearn models side-by-side using cross-validation.", "path": "assets/analytics/model_comparison", "tags": [ "analytics", "model", "comparison" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/model_comparison/schema.json", "component_type": "dagster_component_templates.ModelComparisonComponent", "icon": "BarChart2", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/model_comparison/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/model_comparison/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/model_comparison/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/model_comparison/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "Multiple predictions or models on the same test set.", "outputs": "DataFrame with per-model metrics side-by-side.", "side_effects": "Requires sklearn.", "requires_pip": [ "sklearn" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "scikit-learn" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "model_score", "name": "ModelScore", "category": "analytics", "description": "Apply a trained pickled sklearn model to new rows and emit predictions.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/model_score", "tags": [ "analytics", "model", "score", "inference" ], "dependencies": { "pip": [ "pandas", "scikit-learn", "joblib" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/model_score/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/model_score/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/model_score/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/model_score/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/model_score/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "TWO DataFrames \u2014 predictions + ground truth (or model + test set).", "outputs": "DataFrame with metrics: accuracy, precision, recall, f1, roc_auc (or R\u00b2, MAE, RMSE for regression).", "side_effects": "Reduces to one row of scores. Requires sklearn.", "requires_pip": [ "sklearn" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "moderation_scorer", "name": "Moderation Scorer", "category": "ai", "description": "Component for scoring content for moderation decisions.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/moderation_scorer", "tags": [ "ai", "moderation", "scorer" ], "dependencies": { "pip": [ "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/moderation_scorer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/moderation_scorer/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/moderation_scorer/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/moderation_scorer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/moderation_scorer/requirements.txt", "icon": "Sparkles", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/content_moderation.md", "last_validated": "2026-05-08" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame" } }, { "id": "mongodb_ingestion", "name": "MongoDB Ingestion", "category": "ingestion", "description": "Component for ingesting MongoDB database data using dlt.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/mongodb_ingestion", "tags": [ "ingestion", "mongodb" ], "dependencies": { "pip": [ "dlt[mongodb]>=0.4.0", "pandas>=1.5.0", "pymongo>=4.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/mongodb_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/mongodb_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/mongodb_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/mongodb_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/mongodb_ingestion/requirements.txt", "icon": "si:mongodb", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/mongodb.md", "last_validated": "2026-05-14" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 reads a MongoDB collection.", "outputs": "DataFrame with columns from the documents' fields (flattened per config).", "side_effects": "Read-only. Nested docs may need dataframe_flatten_nested_columns downstream.", "requires_resources": [ "mongodb_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset", "resource" ], "consumes": [ "resource:mongodb" ] }, { "id": "mongodb_io_manager", "name": "MongoDBIOManager", "category": "io_manager", "description": "Persist DataFrames to MongoDB collections (one per asset, document-store).", "version": "1.0.0", "author": "Dagster Community", "path": "io_managers/mongodb_io_manager", "tags": [ "io_manager", "mongodb", "nosql", "document-store" ], "dependencies": { "pip": [ "pandas", "pymongo" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/mongodb_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/mongodb_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/mongodb_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/mongodb_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/mongodb_io_manager/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/mongodb.md", "last_validated": "2026-05-14" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:mongodb" ] }, { "id": "mongodb_reader", "name": "MongoDB Reader", "category": "source", "description": "Component for reading documents from a MongoDB collection.", "path": "assets/sources/mongodb_reader", "tags": [ "source", "mongodb", "reader" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/mongodb_reader/schema.json", "component_type": "dagster_component_templates.MongodbReaderComponent", "icon": "si:mongodb", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/mongodb_reader/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/mongodb_reader/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/mongodb_reader/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/mongodb_reader/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/mongodb.md", "last_validated": "2026-05-14" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "pymongo" ] }, "agent_hints": { "inputs": "None (root source) \u2014 reads documents/records from MongoDB.", "outputs": "DataFrame with columns from MongoDB docs (nested fields may need dataframe_flatten_nested_columns downstream).", "side_effects": "Read-only. Requires mongodb_resource.", "anti_uses": "For writing TO MongoDB use its writer. For SQL DBs use dataframe_from_sql.", "requires_resources": [ "mongodb_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ], "consumes": [ "resource:mongodb" ] }, { "id": "mongodb_resource", "name": "MongoDB Resource", "category": "resource", "description": "Register a MongoDB resource for flexible document database access via pymongo", "version": "1.0.0", "author": "Dagster Community", "path": "resources/mongodb_resource", "tags": [ "resource", "mongodb", "database", "nosql" ], "dependencies": { "pip": [ "pymongo" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/mongodb_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/mongodb_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/mongodb_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/mongodb_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/mongodb_resource/requirements.txt", "icon": "si:mongodb", "x-dagster-provides": [ "mongodb_resource" ], "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/mongodb.md", "last_validated": "2026-05-14" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:mongodb" ] }, { "id": "mongodb_writer", "name": "MongoDB Writer", "category": "sink", "description": "Component for writing a DataFrame to a MongoDB collection.", "path": "assets/sinks/mongodb_writer", "tags": [ "sink", "mongodb", "writer" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/mongodb_writer/schema.json", "component_type": "dagster_component_templates.MongodbWriterComponent", "icon": "si:mongodb", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/mongodb_writer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/mongodb_writer/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/mongodb_writer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/mongodb_writer/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/mongodb.md", "last_validated": "2026-05-14" }, "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes documents to MongoDB).", "side_effects": "Inserts one document per row. `mode` controls upsert/append/replace behavior.", "anti_uses": "For SQL DBs use dataframe_to_table.", "requires_resources": [ "mongodb_resource" ], "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "pymongo" ] }, "produces": [ "asset" ], "consumes": [ "resource:mongodb" ] }, { "id": "monte_carlo_check", "name": "Monte Carlo Check", "category": "check", "description": "Trigger a Monte Carlo custom rule or monitor run and surface results as a Dagster asset check.", "version": "1.0.0", "author": "Dagster Community", "path": "asset_checks/monte_carlo_check", "tags": [ "check", "monte", "carlo" ], "dependencies": { "pip": [ "pycarlo" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/monte_carlo_check/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/monte_carlo_check/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/monte_carlo_check/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/monte_carlo_check/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/monte_carlo_check/requirements.txt", "icon": "CheckCircle", "validation": { "level": "live", "last_validated": "2026-05-11" }, "produces": [ "asset_check" ], "agent_hints": {}, "consumes": [ "resource:monte_carlo" ] }, { "id": "motherduck_io_manager", "name": "MotherDuck IO Manager", "category": "io_manager", "description": "Register a DuckDB IO manager connected to MotherDuck (serverless DuckDB cloud) for asset storage", "version": "0.1.0", "author": "Dagster Labs", "path": "io_managers/motherduck_io_manager", "tags": [ "io_manager", "motherduck", "duckdb", "serverless", "analytics" ], "dependencies": { "pip": [ "dagster-duckdb-pandas>=0.22.0", "duckdb>=0.9.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/motherduck_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/motherduck_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/motherduck_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/motherduck_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/motherduck_io_manager/requirements.txt", "icon": "si:duckdb", "x-dagster-provides": [ "io_manager" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "mqtt_monitor", "name": "MQTT Monitor", "category": "sensor", "description": "Component for subscribing to an MQTT broker topic for new messages.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/mqtt_monitor", "tags": [ "sensor", "mqtt", "monitor" ], "dependencies": { "pip": [ "paho-mqtt>=1.6.1" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/mqtt_monitor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/mqtt_monitor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/mqtt_monitor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/mqtt_monitor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/mqtt_monitor/requirements.txt", "icon": "Radar", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/mqtt.md", "last_validated": "2026-05-14" }, "produces": [ "sensor" ], "agent_hints": {} }, { "id": "mqtt_observation_sensor", "name": "MQTT Observation Sensor", "category": "observation", "description": "MqttObservationSensorComponent", "version": "1.0.0", "author": "Dagster Community", "path": "observations/mqtt_observation_sensor", "tags": [ "observation", "mqtt", "sensor" ], "dependencies": { "pip": [ "paho-mqtt>=1.6.1" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/mqtt_observation_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/mqtt_observation_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/mqtt_observation_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/mqtt_observation_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/mqtt_observation_sensor/requirements.txt", "icon": "Eye", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/mqtt.md", "last_validated": "2026-05-14" }, "produces": [ "sensor" ], "agent_hints": {} }, { "id": "mqtt_to_database_asset", "name": "MQTT to Database", "category": "ingestion", "description": "Subscribe to an MQTT topic and write messages to a database table.", "path": "assets/ingestion/mqtt_to_database_asset", "tags": [ "ingestion", "mqtt", "database", "asset" ], "icon": "ArrowUpFromLine", "type": "dagster_component_templates.MQTTToDatabaseAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/mqtt_to_database_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/mqtt_to_database_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/mqtt_to_database_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/mqtt_to_database_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/mqtt_to_database_asset/requirements.txt", "component_type": "dagster_component_templates.MQTTToDatabaseAssetComponent", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/mqtt.md", "last_validated": "2026-05-14" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 consumes from message broker, writes rows to DB.", "outputs": "None (sink-like \u2014 persists to configured DB).", "side_effects": "Requires MQTT broker + database_connection.", "anti_uses": "For DataFrame return use a dedicated MQTT_reader (if available). For file ingest use file_ingestion.", "requires_resources": [ "mqtt_resource", "database_connection" ], "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "paho-mqtt", "pandas", "sqlalchemy" ] }, "produces": [ "asset" ] }, { "id": "mssql_io_manager", "name": "MSSQLIOManager", "category": "io_manager", "description": "Persist DataFrames to a Microsoft SQL Server schema, one table per asset.", "version": "1.0.0", "author": "Dagster Community", "path": "io_managers/mssql_io_manager", "tags": [ "io_manager", "mssql", "sqlserver", "sql" ], "dependencies": { "pip": [ "pandas", "sqlalchemy", "pyodbc" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/mssql_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/mssql_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/mssql_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/mssql_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/mssql_io_manager/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_postgres.md", "last_validated": "2026-05-06" }, "vendor": "Microsoft", "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:mssql" ] }, { "id": "mssql_resource", "name": "MssqlResourceComponent", "category": "resource", "description": "SQL Server / Azure SQL Database Dagster resource \u2014 connection string + connection factory shared across assets. Mirrors postgres_resource and mysql_resource.", "version": "1.0.0", "author": "Dagster Community", "path": "resources/mssql_resource", "tags": [ "sql-server", "azure-sql", "mssql", "resource", "sqlalchemy", "pymssql", "pyodbc" ], "dependencies": { "pip": [ "sqlalchemy", "pymssql" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/mssql_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/mssql_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/mssql_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/mssql_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/mssql_resource/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_postgres.md", "last_validated": "2026-05-06" }, "vendor": "Microsoft", "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:mssql" ] }, { "id": "msteams_resource", "name": "MSTeamsResource", "category": "resource", "description": "Microsoft Teams notification resource via dagster-msteams.", "version": "1.0.0", "author": "Dagster Community", "path": "resources/msteams_resource", "tags": [ "resource", "msteams", "notification", "official" ], "dependencies": { "pip": [ "dagster", "dagster-msteams" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/msteams_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/msteams_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/msteams_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/msteams_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/msteams_resource/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:teams" ] }, { "id": "multi_field_binning", "name": "MultiFieldBinning", "category": "transformation", "description": "Bin multiple numeric columns at once into quantile or fixed-width bins.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/multi_field_binning", "tags": [ "transformation", "preparation", "binning" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/multi_field_binning/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/multi_field_binning/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/multi_field_binning/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/multi_field_binning/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/multi_field_binning/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/transformations.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with multiple numeric columns to bin (each independently).", "outputs": "DataFrame + N new columns named per config (defaults to `_bin` per binned column).", "side_effects": "Adds N new columns; source columns preserved.", "anti_uses": "For single-column binning use tile_binning. method values are the same (equal_width|equal_freq|custom).", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "multi_field_formula", "name": "Multi Field Formula", "category": "transformation", "description": "Apply a formula expression to multiple columns at once.", "path": "assets/transforms/multi_field_formula", "tags": [ "transformation", "multi", "field", "formula" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/multi_field_formula/schema.json", "component_type": "dagster_component_templates.MultiFieldFormulaComponent", "icon": "Shuffle", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/multi_field_formula/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/multi_field_formula/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/multi_field_formula/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/multi_field_formula/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/transformations.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with columns referenced in `expressions`.", "outputs": "DataFrame + N new columns from N expressions (all evaluated on the same row).", "side_effects": "Adds columns; doesn't remove.", "anti_uses": "For single-column formula use formula. For row-window calculations use multi_row_formula.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "numpy" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "multi_row_formula", "name": "Multi-Row Formula", "category": "transformation", "description": "Apply formulas that reference neighboring rows.", "path": "assets/transforms/multi_row_formula", "tags": [ "transformation", "multi", "row", "formula" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/multi_row_formula/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/multi_row_formula/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/multi_row_formula/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/multi_row_formula/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/multi_row_formula/requirements.txt", "icon": "Shuffle", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/transformations.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame sorted by an order column.", "outputs": "DataFrame + a NEW column derived from adjacent-row values (running sum, diff, lag, lead, etc.).", "side_effects": "Adds column. Order-sensitive \u2014 needs sorted input.", "anti_uses": "For per-row formula use formula. For simple pct change use pct_change. For general window ops use window_calculation.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "multi_touch_attribution", "name": "Multi-Touch Attribution", "category": "analytics", "description": "Component for multi-touch attribution analysis.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/multi_touch_attribution", "tags": [ "analytics", "multi", "touch", "attribution" ], "dependencies": { "pip": [] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/multi_touch_attribution/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/multi_touch_attribution/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/multi_touch_attribution/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/multi_touch_attribution/example.yaml", "icon": "BarChart2", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/multi_touch_attribution/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/retail_ltv.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with touch events (timestamp, channel, user_id) + conversion column.", "outputs": "DataFrame with attribution weights per channel/touch.", "side_effects": "First-touch / last-touch / linear / U-shape / data-driven attribution per config.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ] }, { "id": "multidimensional_scaling", "name": "MultidimensionalScaling", "category": "analytics", "description": "Reduce feature dimensions to 2D/3D via metric MDS for visualization.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/multidimensional_scaling", "tags": [ "analytics", "dimensionality-reduction", "mds", "visualization" ], "dependencies": { "pip": [ "pandas", "scikit-learn", "numpy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/multidimensional_scaling/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/multidimensional_scaling/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/multidimensional_scaling/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/multidimensional_scaling/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/multidimensional_scaling/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with a distance/similarity matrix or feature vectors.", "outputs": "DataFrame with 2D or 3D coordinates per row (for visualization).", "side_effects": "Requires sklearn. Row count preserved; column set replaced with dim1..dimN.", "requires_pip": [ "sklearn" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "mysql_io_manager", "name": "MySQLIOManager", "category": "io_manager", "description": "Persist DataFrames to a MySQL/MariaDB schema, one table per asset.", "version": "1.0.0", "author": "Dagster Community", "path": "io_managers/mysql_io_manager", "tags": [ "io_manager", "mysql", "mariadb", "sql" ], "dependencies": { "pip": [ "pandas", "sqlalchemy", "pymysql" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/mysql_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/mysql_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/mysql_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/mysql_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/mysql_io_manager/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_mysql.md", "last_validated": "2026-05-06" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:mysql" ] }, { "id": "mysql_resource", "name": "MySQL Resource", "category": "resource", "description": "Register a MySQL resource for relational database access", "version": "1.0.0", "author": "Dagster Community", "path": "resources/mysql_resource", "tags": [ "resource", "mysql", "database", "sql" ], "dependencies": { "pip": [ "mysql-connector-python" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/mysql_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/mysql_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/mysql_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/mysql_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/mysql_resource/requirements.txt", "icon": "si:mysql", "x-dagster-provides": [ "mysql_resource" ], "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_mysql.md", "last_validated": "2026-05-06" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:mysql" ] }, { "id": "naive_bayes_model", "name": "Naive Bayes Model", "category": "analytics", "description": "Fit a Naive Bayes classifier and output predictions and/or class probabilities.", "path": "assets/analytics/naive_bayes_model", "tags": [ "analytics", "naive", "bayes", "model" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/naive_bayes_model/schema.json", "component_type": "dagster_component_templates.NaiveBayesModelComponent", "icon": "BarChart2", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/naive_bayes_model/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/naive_bayes_model/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/naive_bayes_model/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/naive_bayes_model/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with feature columns + categorical target.", "outputs": "DataFrame with predictions + class probabilities.", "side_effects": "Fast. Assumes feature independence. Requires sklearn.", "anti_uses": "For continuous outcomes use linear_regression_model. For interpretability use logistic_regression_model.", "requires_pip": [ "sklearn" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "scikit-learn" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "nats_monitor", "name": "NATS JetStream Monitor", "category": "sensor", "description": "Component for monitoring a NATS JetStream consumer for new messages.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/nats_monitor", "tags": [ "sensor", "nats", "monitor" ], "dependencies": { "pip": [ "nats-py>=2.3.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/nats_monitor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/nats_monitor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/nats_monitor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/nats_monitor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/nats_monitor/requirements.txt", "icon": "Radar", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/nats.md", "last_validated": "2026-05-14" }, "produces": [ "sensor" ], "agent_hints": {} }, { "id": "nats_observation_sensor", "name": "NATS Observation Sensor", "category": "observation", "description": "NatsObservationSensorComponent", "version": "1.0.0", "author": "Dagster Community", "path": "observations/nats_observation_sensor", "tags": [ "observation", "nats", "sensor" ], "dependencies": { "pip": [ "nats-py>=2.3.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/nats_observation_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/nats_observation_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/nats_observation_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/nats_observation_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/nats_observation_sensor/requirements.txt", "icon": "Eye", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/nats.md", "last_validated": "2026-05-14" }, "produces": [ "sensor" ], "agent_hints": {} }, { "id": "nats_to_database_asset", "name": "NATS to Database", "category": "ingestion", "description": "Subscribe to a NATS subject/JetStream and write messages to a database table.", "path": "assets/ingestion/nats_to_database_asset", "tags": [ "ingestion", "nats", "database", "asset" ], "icon": "ArrowUpFromLine", "type": "dagster_component_templates.NATSToDatabaseAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/nats_to_database_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/nats_to_database_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/nats_to_database_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/nats_to_database_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/nats_to_database_asset/requirements.txt", "component_type": "dagster_component_templates.NATSToDatabaseAssetComponent", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/nats.md", "last_validated": "2026-05-14" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 consumes from message broker, writes rows to DB.", "outputs": "None (sink-like \u2014 persists to configured DB).", "side_effects": "Requires NATS broker + database_connection.", "anti_uses": "For DataFrame return use a dedicated NATS_reader (if available). For file ingest use file_ingestion.", "requires_resources": [ "nats_resource", "database_connection" ], "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "nats-py", "pandas", "sqlalchemy" ] }, "produces": [ "asset" ] }, { "id": "nearest_neighbors", "name": "Nearest Neighbors", "category": "analytics", "description": "For each record, find the K nearest neighbors by feature similarity.", "path": "assets/analytics/nearest_neighbors", "tags": [ "analytics", "nearest", "neighbors" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/nearest_neighbors/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/nearest_neighbors/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/nearest_neighbors/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/nearest_neighbors/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/nearest_neighbors/requirements.txt", "icon": "BarChart2", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/cities_nn.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with numeric feature columns + optional query points.", "outputs": "DataFrame with nearest-neighbor indices + distances per query row.", "side_effects": "For similarity search. Feature scaling matters. Requires sklearn.", "anti_uses": "For approximate/large-scale similarity use pgvector_asset / pinecone_asset / chromadb_asset (vector DBs).", "requires_pip": [ "sklearn" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "scikit-learn" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "neo4j_reader", "name": "Neo4j Reader", "category": "source", "description": "Component for executing Cypher queries against a Neo4j graph database.", "path": "assets/sources/neo4j_reader", "tags": [ "source", "neo4j", "reader" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/neo4j_reader/schema.json", "component_type": "dagster_component_templates.Neo4jReaderComponent", "icon": "si:neo4j", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/neo4j_reader/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/neo4j_reader/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/neo4j_reader/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/neo4j_reader/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/neo4j.md", "last_validated": "2026-05-14" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "neo4j" ] }, "agent_hints": { "inputs": "None (root source) \u2014 reads documents/records from Neo4j (Cypher query result).", "outputs": "DataFrame with columns from Neo4j (Cypher query result) docs (nested fields may need dataframe_flatten_nested_columns downstream).", "side_effects": "Read-only. Requires neo4j_resource.", "anti_uses": "For writing TO Neo4j (Cypher query result) use its writer. For SQL DBs use dataframe_from_sql.", "requires_resources": [ "neo4j_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ], "consumes": [ "resource:neo4j" ] }, { "id": "neo4j_resource", "name": "Neo4j Resource", "category": "resource", "description": "Register a Neo4j resource for graph database queries via the Bolt protocol", "version": "1.0.0", "author": "Dagster Community", "path": "resources/neo4j_resource", "tags": [ "resource", "neo4j", "database", "graph" ], "dependencies": { "pip": [ "neo4j" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/neo4j_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/neo4j_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/neo4j_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/neo4j_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/neo4j_resource/requirements.txt", "icon": "si:neo4j", "x-dagster-provides": [ "neo4j_resource" ], "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/neo4j.md", "last_validated": "2026-05-14" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:neo4j" ] }, { "id": "neo4j_writer", "name": "Neo4j Writer", "category": "sink", "description": "Write a DataFrame to Neo4j as graph nodes using MERGE or CREATE with efficient UNWIND batch processing", "version": "1.0.0", "author": "Dagster Community", "path": "assets/sinks/neo4j_writer", "tags": [ "sink", "neo4j", "graph" ], "dependencies": { "pip": [ "pandas", "neo4j" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/neo4j_writer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/neo4j_writer/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/neo4j_writer/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/neo4j_writer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/neo4j_writer/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/neo4j.md", "last_validated": "2026-05-14" }, "agent_hints": { "inputs": "DataFrame representing nodes OR relationships.", "outputs": "None (sink \u2014 writes nodes/relationships to Neo4j).", "side_effects": "Uses MERGE (idempotent) or CREATE (may duplicate). Requires neo4j_resource.", "anti_uses": "For simple key-value use redis_writer. For SQL DBs use dataframe_to_table.", "requires_resources": [ "neo4j_resource" ], "input_type": "pd.DataFrame", "output_type": null }, "produces": [ "asset" ], "consumes": [ "resource:neo4j" ] }, { "id": "nested_field_extractor", "name": "Nested Field Extractor", "category": "transformation", "description": "Pull out fields from nested dict columns using dot-path notation.", "path": "assets/transforms/nested_field_extractor", "tags": [ "transformation", "documents", "nested", "dot-path", "extraction" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/nested_field_extractor/schema.json", "component_type": "dagster_component_templates.NestedFieldExtractorComponent", "icon": "GitBranch", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/nested_field_extractor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/nested_field_extractor/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/nested_field_extractor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/nested_field_extractor/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/github_jsonpath.md", "last_validated": "2026-05-06" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "neural_network_model", "name": "Neural Network Model", "category": "analytics", "description": "Fit a multi-layer perceptron (MLP) neural network for classification or regression.", "path": "assets/analytics/neural_network_model", "tags": [ "analytics", "neural", "network", "model" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/neural_network_model/schema.json", "component_type": "dagster_component_templates.NeuralNetworkModelComponent", "icon": "BarChart2", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/neural_network_model/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/neural_network_model/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/neural_network_model/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/neural_network_model/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with numeric feature columns + target column.", "outputs": "DataFrame with predictions.", "side_effects": "Requires sklearn (MLPClassifier/MLPRegressor). Feature scaling essential \u2014 chain feature_scaler.", "anti_uses": "For tabular data, prefer gradient_boosting_model \u2014 usually competitive and faster.", "requires_pip": [ "sklearn" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "scikit-learn" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "newrelic_nrql_query", "name": "New Relic NRQL Query", "category": "source", "description": "Run an NRQL query via NerdGraph \u2192 DataFrame. For ops dashboards, anomaly detection, alerting trends.", "path": "assets/sources/newrelic_nrql_query", "tags": [ "source", "newrelic", "nrql", "observability" ], "type": "dagster_component_templates.NewRelicNrqlQueryComponent", "component_type": "dagster_component_templates.NewRelicNrqlQueryComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/newrelic_nrql_query/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/newrelic_nrql_query/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/newrelic_nrql_query/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/newrelic_nrql_query/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/newrelic_nrql_query/requirements.txt", "icon": "Search", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/newrelic_dynatrace.md", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "requests" ] }, "agent_hints": { "inputs": "None (root source) \u2014 runs a query against New Relic (NRQL) log store.", "outputs": "DataFrame with log/metric rows \u2014 schema depends on the query.", "side_effects": "Requires newrelic_resource. Query language is vendor-specific.", "anti_uses": "For streaming logs use a broker-to-database ingest (kafka_to_database_asset). Not for writing.", "requires_resources": [ "newrelic_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:newrelic" ] }, { "id": "newrelic_resource", "name": "New Relic Resource", "category": "resource", "description": "New Relic API client wrapper (NerdGraph + Logs/Metrics/Events ingestion). US + EU regions.", "path": "resources/newrelic_resource", "tags": [ "resource", "newrelic", "observability", "metrics", "logs" ], "type": "dagster_component_templates.NewRelicResourceComponent", "component_type": "dagster_component_templates.NewRelicResourceComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/newrelic_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/newrelic_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/newrelic_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/newrelic_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/newrelic_resource/requirements.txt", "icon": "Activity", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/newrelic_dynatrace.md", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "requests" ] }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:newrelic" ] }, { "id": "notion_database_sensor", "name": "NotionDatabaseSensor", "category": "sensor", "description": "Trigger a run when a Notion database has new or updated rows.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/notion_database_sensor", "tags": [ "sensor", "notion", "knowledge-base" ], "dependencies": { "pip": [ "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/notion_database_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/notion_database_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/notion_database_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/notion_database_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/notion_database_sensor/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "sensor" ], "agent_hints": {} }, { "id": "notion_ingestion", "name": "Notion Ingestion", "category": "ingestion", "description": "Component for ingesting Notion workspace databases using dlt.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/notion_ingestion", "tags": [ "ingestion", "notion" ], "dependencies": { "pip": [ "dlt[notion]>=0.4.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/notion_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/notion_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/notion_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/notion_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/notion_ingestion/requirements.txt", "icon": "si:notion", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 reads Notion pages/databases via API.", "outputs": "DataFrame with columns from Notion database properties.", "side_effects": "Requires notion_api_key.", "requires_resources": [ "notion_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "notion_resource", "name": "Notion Resource", "category": "resource", "description": "Register a NotionResource wrapping the notion-client SDK for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/notion_resource", "tags": [ "resource", "notion", "productivity", "no-code" ], "dependencies": { "pip": [ "notion-client" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/notion_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/notion_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/notion_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/notion_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/notion_resource/requirements.txt", "icon": "si:notion", "x-dagster-provides": [ "notion_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "o365_audit_log_ingestion", "name": "O365AuditLogIngestionComponent", "category": "ingestion", "description": "Pull Microsoft 365 / Office 365 Unified Audit Log entries via the Management Activity API.", "version": "1.0.0", "author": "Dagster Community", "path": "ingestion/o365_audit_log_ingestion", "tags": [ "o365", "microsoft", "siem", "audit-log", "security" ], "dependencies": { "pip": [ "pandas", "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/o365_audit_log_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/o365_audit_log_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/o365_audit_log_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/o365_audit_log_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/o365_audit_log_ingestion/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Microsoft", "agent_hints": { "inputs": "None (root ingestion) \u2014 reads audit log entries via API.", "outputs": "DataFrame of Microsoft 365 audit audit events (actor, action, resource, timestamp, metadata).", "side_effects": "Read-only. Requires Microsoft 365 audit admin credentials. Chunked / paginated per vendor's API.", "anti_uses": "For SIEM ingestion of the SAME logs into a SIEM, chain into audit_logs_to_ sinks downstream.", "requires_resources": [ "azure_credentials" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "oauth_rest_ingestion", "name": "OAuth REST Ingestion", "category": "ingestion", "description": "OAuth2-backed REST GET \u2192 DataFrame with built-in pagination. Covers Concur, Ariba, and any other Bearer-token JSON API.", "path": "assets/ingestion/oauth_rest_ingestion", "tags": [ "ingestion", "oauth", "rest", "concur", "ariba", "sap" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/oauth_rest_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/oauth_rest_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/oauth_rest_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/oauth_rest_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/oauth_rest_ingestion/requirements.txt", "icon": "Lock", "validation": { "level": "code", "last_validated": "2026-05-13" }, "agent_hints": { "inputs": "None (root) \u2014 hits an OAuth2-authed REST API.", "outputs": "DataFrame from JSON response.", "side_effects": "Handles token refresh. Requires oauth_config (client_id, client_secret, token_url, scopes).", "anti_uses": "For unauthenticated / API-key auth use rest_api_fetcher. For GraphQL use graphql_asset.", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "requests", "pandas" ] }, "produces": [ "asset" ] }, { "id": "oauth_token_resource", "name": "OAuth Token Resource", "category": "resource", "description": "Headless OAuth 2.0 token resource. Supports client_credentials, refresh_token, and password grants. Handles refresh-token rotation via configurable writeback (file or command).", "path": "resources/oauth_token_resource", "tags": [ "resource", "oauth", "auth", "concur", "ariba", "sap", "msgraph", "salesforce", "headless" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/oauth_token_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/oauth_token_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/oauth_token_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/oauth_token_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/oauth_token_resource/requirements.txt", "icon": "Lock", "validation": { "level": "code", "last_validated": "2026-05-13" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "requests" ] }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "observability_heartbeat_job", "name": "ObservabilityHeartbeatJobComponent", "category": "jobs", "description": "Compound op job: send a heartbeat to multiple destinations (Slack + PagerDuty + HTTP) on cron \u2014 single YAML config.", "version": "1.0.0", "author": "Dagster Community", "path": "jobs/observability_heartbeat_job", "tags": [ "compound", "job", "heartbeat", "monitoring", "observability" ], "dependencies": { "pip": [ "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/observability_heartbeat_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/observability_heartbeat_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/observability_heartbeat_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/observability_heartbeat_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/observability_heartbeat_job/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/composition_primitives.md", "last_validated": "2026-05-14" }, "produces": [ "job", "schedule" ], "agent_hints": {} }, { "id": "ocr_extractor", "name": "Ocr Extractor", "category": "ai", "description": "Extract text from images using Tesseract OCR with optional PIL preprocessing.", "path": "assets/ai/ocr_extractor", "tags": [ "ai", "image", "ocr", "vision" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/ocr_extractor/schema.json", "component_type": "dagster_component_templates.OcrExtractorComponent", "icon": "ScanText", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/ocr_extractor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/ocr_extractor/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/ocr_extractor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/ocr_extractor/requirements.txt", "validation": { "level": "live", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "pytesseract", "Pillow" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "ocsf_normalizer", "name": "OcsfNormalizerComponent", "category": "transformation", "description": "Normalize source events to OCSF v1.1 with class_uid / category_uid / activity_id \u2014 per-source mapping tables for dagster_plus, cloudtrail, okta, github, azure_activity, slack.", "version": "1.0.0", "author": "Dagster Community", "path": "transforms/ocsf_normalizer", "tags": [ "ocsf", "security", "normalize", "schema", "siem" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/ocsf_normalizer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/ocsf_normalizer/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/ocsf_normalizer/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/ocsf_normalizer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/ocsf_normalizer/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/dagster_plus_to_sentinel.md", "last_validated": "2026-05-06" }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "ocsf_validator", "name": "OcsfValidatorComponent", "category": "check", "description": "Asset check: validates OCSF v1.x conformance \u2014 required fields, severity range, known class_uid set.", "version": "1.0.0", "author": "Dagster Community", "path": "asset_checks/ocsf_validator", "tags": [ "ocsf", "security", "asset-check", "validation" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/ocsf_validator/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/ocsf_validator/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/ocsf_validator/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/ocsf_validator/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/ocsf_validator/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/dagster_plus_security_lake.md", "last_validated": "2026-05-06" }, "produces": [ "asset_check" ], "agent_hints": {} }, { "id": "odata_check", "name": "OData Check", "category": "check", "description": "Asset check \u2014 smoke-test that an OData service URL + entity set is reachable, returns N rows, and contains expected columns.", "path": "asset_checks/odata_check", "tags": [ "check", "odata", "sap", "data-quality" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/odata_check/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/odata_check/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/odata_check/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/odata_check/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/odata_check/requirements.txt", "icon": "ShieldCheck", "validation": { "level": "code", "last_validated": "2026-05-13" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "requests" ] }, "produces": [ "asset_check" ], "agent_hints": {} }, { "id": "odata_ingestion", "name": "OData Ingestion", "category": "ingestion", "description": "Generic OData v2/v4 client. Covers SAP S/4HANA, SuccessFactors, Datasphere, Microsoft Dynamics 365 / Dataverse, MS Graph, SharePoint, Business Central, Oracle Fusion, Epicor, IFS, and any other OData-exposing system.", "path": "assets/ingestion/odata_ingestion", "tags": [ "ingestion", "odata", "sap", "s4hana", "successfactors", "datasphere", "dynamics365", "dataverse", "msgraph", "sharepoint", "oracle-fusion", "epicor" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/odata_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/odata_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/odata_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/odata_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/odata_ingestion/requirements.txt", "icon": "Network", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/odata_pipeline.md", "last_validated": "2026-05-14" }, "agent_hints": { "inputs": "None (root source) \u2014 hits an OData endpoint (SAP, Microsoft Graph, Dynamics 365, etc.).", "outputs": "DataFrame with columns from the OData entity set.", "side_effects": "None on local data. Requires OData endpoint URL + auth.", "anti_uses": "For generic REST APIs use rest_api_fetcher. For SharePoint file lists use msgraph-specific patterns.", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "requests", "pandas" ] }, "produces": [ "asset" ] }, { "id": "odata_resource", "name": "OData Resource", "category": "resource", "description": "Register an OData service connection (base URL + auth) once and reuse it across components.", "path": "resources/odata_resource", "tags": [ "resource", "odata", "sap", "s4hana", "successfactors", "dynamics365", "msgraph" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/odata_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/odata_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/odata_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/odata_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/odata_resource/requirements.txt", "icon": "Network", "validation": { "level": "code", "last_validated": "2026-05-13" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "requests" ] }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "okta_system_log_ingestion", "name": "OktaSystemLogIngestionComponent", "category": "ingestion", "description": "Pull Okta System Log events (every authentication, MFA challenge, admin action) via /api/v1/logs.", "version": "1.0.0", "author": "Dagster Community", "path": "ingestion/okta_system_log_ingestion", "tags": [ "okta", "siem", "audit-log", "iam", "sso", "security" ], "dependencies": { "pip": [ "pandas", "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/okta_system_log_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/okta_system_log_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/okta_system_log_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/okta_system_log_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/okta_system_log_ingestion/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 reads audit log entries via API.", "outputs": "DataFrame of Okta System Log audit events (actor, action, resource, timestamp, metadata).", "side_effects": "Read-only. Requires Okta System Log admin credentials. Chunked / paginated per vendor's API.", "anti_uses": "For SIEM ingestion of the SAME logs into a SIEM, chain into audit_logs_to_ sinks downstream.", "requires_resources": [ "okta_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "ollama_inference_asset", "name": "Ollama Inference Asset", "category": "ai", "description": "Shared Ollama connection config for use across multiple components.", "path": "assets/ai/ollama_inference_asset", "tags": [ "ai", "ollama", "inference", "asset" ], "icon": "Sparkles", "type": "dagster_component_templates.OllamaInferenceAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/ollama_inference_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/ollama_inference_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/ollama_inference_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/ollama_inference_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/ollama_inference_asset/requirements.txt", "component_type": "dagster_component_templates.OllamaInferenceAssetComponent", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/ollama.md", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "requests", "pandas", "sqlalchemy" ] }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "one_hot_encoding", "name": "One-Hot Encoding", "category": "transformation", "description": "Expand categorical columns into binary indicator columns with optional rare-category bucketing.", "path": "assets/transforms/one_hot_encoding", "tags": [ "transformation", "one_hot_encoding", "feature_engineering", "categorical" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/one_hot_encoding/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/one_hot_encoding/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/one_hot_encoding/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/one_hot_encoding/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/one_hot_encoding/requirements.txt", "icon": "Grid3x3", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/penguins.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with categorical string columns to encode.", "outputs": "Original `columns` are REMOVED and replaced by dummy columns named `_` (one per unique value; if drop_first=true, drops the first alphabetically).", "side_effects": "REMOVES the source `columns` and adds MANY new `_` columns. Any downstream step referencing the original column name will fail with KeyError \u2014 branch pre-encoding data off an earlier step for summarize/group_by/filter on the original column.", "anti_uses": "Not for ordinal encoding (use label_encoder or a formula step).", "chains_with": "Typical successor to tile_binning; typical predecessor to logistic_regression_model.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "openai_agent", "name": "OpenAI Agent", "category": "ai", "description": "Single-shot LLM agent with Model Context Protocol (MCP) tool support, using the OpenAI SDK directly (no LiteLLM dep). Also works with Azure OpenAI and OpenAI-compatible endpoints. Runs a tool-calling loop until the model returns a final answer or max_iterations.", "path": "assets/ai/openai_agent", "tags": [ "ai", "llm", "agent", "mcp", "tool-use", "openai", "agentic" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/openai_agent/schema.json", "component_type": "dagster_component_templates.OpenAIAgentComponent", "icon": "si:openai", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/openai_agent/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/openai_agent/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/openai_agent/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/openai_agent/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/litellm_agent.md", "last_validated": "2026-06-04" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "openai", "mcp" ] }, "produces": [ "asset" ], "agent_hints": { "output_type": "pd.DataFrame" }, "consumes": [ "resource:openai" ] }, { "id": "openai_llm", "name": "OpenAI LLM", "category": "ai", "description": "Component for processing text with OpenAI's GPT models.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/openai_llm", "tags": [ "ai", "openai", "llm" ], "dependencies": { "pip": [ "openai>=1.0.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/openai_llm/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/openai_llm/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/openai_llm/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/openai_llm/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/openai_llm/requirements.txt", "icon": "si:openai", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/llm_execution.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame" }, "consumes": [ "resource:openai" ] }, { "id": "openai_resource", "name": "OpenAI Resource", "category": "resource", "description": "Register a dagster-openai OpenAIResource for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/openai_resource", "tags": [ "resource", "openai", "llm", "ai" ], "dependencies": { "pip": [ "dagster-openai" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/openai_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/openai_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/openai_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/openai_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/openai_resource/requirements.txt", "icon": "si:openai", "x-dagster-provides": [ "openai_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:openai" ] }, { "id": "openapi_asset", "name": "OpenAPI Asset", "category": "ingestion", "description": "Create one Dagster asset per OpenAPI tag group, backed by a cached spec.", "path": "assets/ingestion/openapi_asset", "tags": [ "ingestion", "openapi", "asset" ], "icon": "ArrowUpFromLine", "type": "dagster_component_templates.OpenAPIAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/openapi_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/openapi_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/openapi_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/openapi_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/openapi_asset/requirements.txt", "component_type": "dagster_component_templates.OpenAPIAssetComponent", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 hits an OpenAPI-spec'd REST endpoint.", "outputs": "DataFrame from the response, typed per the OpenAPI schema.", "side_effects": "Type safety from the spec. Requires openapi_spec_url + auth.", "anti_uses": "For generic REST use rest_api_fetcher.", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "requests", "pyyaml", "pandas", "sqlalchemy" ] }, "produces": [ "multi_asset" ], "stateful": true }, { "id": "openlineage_emitter", "name": "OpenlineageEmitterComponent", "category": "check", "description": "Asset check that emits OpenLineage START/COMPLETE events to OL-compatible backends (Marquez, DataHub, OpenMetadata) when an upstream asset materializes.", "version": "1.0.0", "author": "Dagster Community", "path": "asset_checks/openlineage_emitter", "tags": [ "openlineage", "lineage", "observability", "datahub", "marquez", "openmetadata" ], "dependencies": { "pip": [ "pandas", "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/openlineage_emitter/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/openlineage_emitter/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/openlineage_emitter/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/openlineage_emitter/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/openlineage_emitter/requirements.txt", "validation": { "level": "live", "last_validated": "2026-05-11" }, "produces": [ "asset_check" ], "agent_hints": {} }, { "id": "openlineage_export_job", "name": "OpenLineageExportJobComponent", "category": "jobs", "description": "Op-shaped job that emits OpenLineage RunEvent (START / COMPLETE) per Dagster run to a configured collector (Marquez, OpenLineage Proxy, Datakin).", "version": "1.0.0", "author": "Dagster Community", "path": "jobs/openlineage_export_job", "tags": [ "jobs", "openlineage", "lineage", "marquez", "observability", "export" ], "dependencies": { "pip": [ "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/openlineage_export_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/openlineage_export_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/openlineage_export_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/openlineage_export_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/openlineage_export_job/requirements.txt", "component_type": "dagster_component_templates.OpenLineageExportJobComponent", "validation": { "level": "live", "last_validated": "2026-05-11" }, "produces": [ "job", "schedule" ], "agent_hints": {} }, { "id": "openrouter_llm", "name": "OpenRouterLLMComponent", "category": "ai", "description": "Per-row LLM inference via OpenRouter \u2014 one API key gives access to 100+ models from Anthropic, OpenAI, Google, Meta/Llama, Mistral, DeepSeek, xAI, Cohere, with automatic fallback, caching, and unified billing.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/openrouter_llm", "tags": [ "ai", "llm", "openrouter", "router", "multi-provider", "fallback", "agentic" ], "dependencies": { "pip": [ "dagster>=1.8.0", "pandas>=1.5.0", "openai>=1.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/openrouter_llm/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/openrouter_llm/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/openrouter_llm/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/openrouter_llm/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/openrouter_llm/requirements.txt", "component_type": "dagster_component_templates.OpenRouterLLMComponent", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "consumes": [ "resource:openrouter" ] }, { "id": "optimization", "name": "Optimization", "category": "analytics", "description": "Component for solving linear programming optimization problems.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/optimization", "tags": [ "analytics", "optimization" ], "dependencies": { "pip": [ "pandas>=1.5.0", "scipy>=1.9.0", "numpy>=1.23.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/optimization/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/optimization/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/optimization/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/optimization/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/optimization/requirements.txt", "icon": "BarChart2", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame + objective function config.", "outputs": "DataFrame with optimal solution + objective value.", "side_effects": "Requires scipy. Constrained optimization via scipy.optimize.", "requires_pip": [ "scipy" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ] }, { "id": "oracle_resource", "name": "OracleResourceComponent", "path": "resources/oracle_resource", "category": "resource", "author": "Dagster Community", "version": "1.0.0", "description": "Oracle Database Dagster resource \u2014 connection string + connection factory shared across assets. Works against XE/Free/Enterprise, Autonomous Database, and OCI DBaaS. Uses python-oracledb thin mode by default (no Instant Client install).", "tags": [ "oracle", "oracle-database", "autonomous-db", "adb", "resource", "sqlalchemy", "oracledb" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/oracle_resource/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/oracle_resource/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/oracle_resource/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/oracle_resource/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/oracle_resource/schema.json", "dependencies": { "pip": [ "sqlalchemy>=2.0.0", "oracledb>=2.0.0" ] }, "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/oracle.md", "last_validated": "2026-05-14" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "outlier_clipper", "name": "Outlier Clipper", "category": "transformation", "description": "Detect and clip, drop, or flag outliers in numeric columns using IQR, z-score, or quantile thresholds.", "path": "assets/transforms/outlier_clipper", "tags": [ "transformation", "outlier_detection", "data_quality", "preprocessing" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/outlier_clipper/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/outlier_clipper/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/outlier_clipper/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/outlier_clipper/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/outlier_clipper/requirements.txt", "icon": "Crop", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/kitchen_sink.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with numeric columns.", "outputs": "Same columns and dtypes; extreme values clipped to bounds.", "side_effects": "Modifies numeric column values IN PLACE; column names unchanged.", "anti_uses": "Only 'iqr', 'zscore', or 'percentile' are valid for strategy. NOT 'clip'.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "oversample_field", "name": "Oversample Field", "category": "analytics", "description": "Balance imbalanced datasets using SMOTE, random oversampling, or ADASYN.", "path": "assets/analytics/oversample_field", "tags": [ "analytics", "oversample", "field" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/oversample_field/schema.json", "component_type": "dagster_component_templates.OversampleFieldComponent", "icon": "BarChart2", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/oversample_field/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/oversample_field/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/oversample_field/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/oversample_field/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with a class-imbalanced categorical column.", "outputs": "DataFrame with rows RESAMPLED to balance the class distribution.", "side_effects": "Row count grows. Use for imbalanced classification training. Requires imblearn.", "requires_pip": [ "imblearn" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "scikit-learn", "imbalanced-learn" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "pagerduty_heartbeat_job", "name": "PagerdutyHeartbeatJobComponent", "category": "jobs", "description": "Send a PagerDuty heartbeat (resolve event) \u2014 confirms a job is alive on a cadence.", "version": "1.0.0", "author": "Dagster Community", "path": "jobs/pagerduty_heartbeat_job", "tags": [ "job", "pagerduty", "heartbeat", "monitoring" ], "dependencies": { "pip": [ "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/pagerduty_heartbeat_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/pagerduty_heartbeat_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/pagerduty_heartbeat_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/pagerduty_heartbeat_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/pagerduty_heartbeat_job/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "job", "schedule" ], "agent_hints": {} }, { "id": "pagerduty_incident_sensor", "name": "PagerDutyIncidentSensor", "category": "sensor", "description": "Trigger a run when PagerDuty incidents are created or change state.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/pagerduty_incident_sensor", "tags": [ "sensor", "pagerduty", "incidents", "oncall" ], "dependencies": { "pip": [ "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/pagerduty_incident_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/pagerduty_incident_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/pagerduty_incident_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/pagerduty_incident_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/pagerduty_incident_sensor/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "sensor" ], "agent_hints": {} }, { "id": "pagerduty_resource", "name": "PagerDuty Resource", "category": "resource", "description": "Register a dagster-pagerduty PagerDutyService for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/pagerduty_resource", "tags": [ "resource", "pagerduty", "alerting", "notification" ], "dependencies": { "pip": [ "dagster-pagerduty" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/pagerduty_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/pagerduty_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/pagerduty_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/pagerduty_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/pagerduty_resource/requirements.txt", "icon": "si:pagerduty", "x-dagster-provides": [ "pagerduty_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "pandas_dataframe_check", "name": "PandasDataframeCheck", "category": "check", "description": "Validate a DataFrame asset's column constraints via dagster-pandas.", "version": "1.0.0", "author": "Dagster Community", "path": "asset_checks/pandas_dataframe_check", "tags": [ "check", "pandas", "schema", "constraints" ], "dependencies": { "pip": [ "dagster", "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/pandas_dataframe_check/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/pandas_dataframe_check/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/pandas_dataframe_check/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/pandas_dataframe_check/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/pandas_dataframe_check/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/data_quality.md", "last_validated": "2026-05-08" }, "produces": [ "asset_check" ], "agent_hints": {} }, { "id": "pandera_asset_check", "name": "PanderaAssetCheck", "category": "check", "description": "Validate a DataFrame asset against a Pandera schema as a Dagster asset check.", "version": "1.0.0", "author": "Dagster Community", "path": "asset_checks/pandera_asset_check", "tags": [ "check", "pandera", "schema", "official" ], "dependencies": { "pip": [ "dagster", "dagster-pandera", "pandera" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/pandera_asset_check/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/pandera_asset_check/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/pandera_asset_check/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/pandera_asset_check/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/pandera_asset_check/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/data_quality.md", "last_validated": "2026-05-08" }, "produces": [ "asset_check" ], "agent_hints": {} }, { "id": "papertrail_resource", "name": "PapertrailResource", "category": "resource", "description": "Stream Dagster logs to Papertrail via dagster-papertrail.", "version": "1.0.0", "author": "Dagster Community", "path": "resources/papertrail_resource", "tags": [ "resource", "papertrail", "logging", "official" ], "dependencies": { "pip": [ "dagster", "dagster-papertrail" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/papertrail_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/papertrail_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/papertrail_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/papertrail_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/papertrail_resource/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "parametric_data_generator", "name": "Parametric Data Generator", "category": "source", "description": "YAML-driven synthetic data \u2014 declare columns + types + ranges + distributions in defs.yaml. Mockaroo-style.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/source/parametric_data_generator", "tags": [ "parametric-data-generator", "synthetic", "source", "mockaroo" ], "dependencies": { "pip": [ "dagster", "pandas", "tabulate" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/parametric_data_generator/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/parametric_data_generator/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/parametric_data_generator/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/parametric_data_generator/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/parametric_data_generator/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-12" }, "agent_hints": { "inputs": "None \u2014 configured distribution + row count.", "outputs": "DataFrame with generated numeric/categorical columns.", "side_effects": "For statistical / model-test fixtures.", "input_type": null, "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "ui_editable": true }, { "id": "part_of_speech_tagger", "name": "Part Of Speech Tagger", "category": "ai", "description": "Component for tagging parts of speech in text using spaCy.", "path": "assets/ai/part_of_speech_tagger", "tags": [ "ai", "part", "speech", "tagger" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/part_of_speech_tagger/schema.json", "component_type": "dagster_component_templates.PartOfSpeechTaggerComponent", "icon": "Sparkles", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/part_of_speech_tagger/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/part_of_speech_tagger/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/part_of_speech_tagger/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/part_of_speech_tagger/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/nlp_utilities.md", "last_validated": "2026-05-08" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "spacy" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "pca", "name": "PCA", "category": "analytics", "description": "Reduce DataFrame dimensionality using Principal Component Analysis.", "path": "assets/analytics/pca", "tags": [ "analytics", "pca" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/pca/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/pca/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/pca/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/pca/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/pca/requirements.txt", "icon": "BarChart2", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/iris_unsupervised.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with numeric feature columns.", "outputs": "DataFrame with PC1..PCN columns replacing the original feature columns. Rows unchanged.", "side_effects": "REMOVES the original feature columns and REPLACES with N principal components. Downstream references to original column names will KeyError.", "anti_uses": "Only for numeric features \u2014 one-hot encode categoricals FIRST. Set n_components based on desired explained variance.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "scikit-learn" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "pct_change", "name": "Pct Change", "component_type": "dagster_component_templates.PctChangeComponent", "path": "assets/transforms/pct_change", "category": "transformation", "icon": "TrendingUp", "description": "Compute period-over-period diff and percent change on a value column, optionally grouped (per region/customer) and ordered (by a time column). Right for week-over-week / month-over-month growth metrics.", "tags": [ "transformation", "pct_change", "growth", "wow", "mom", "time-series" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/pct_change/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/pct_change/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/pct_change/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/pct_change/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/pct_change/schema.json", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/transformations.md", "last_validated": "2026-05-15" }, "agent_hints": { "inputs": "DataFrame with a numeric time-series column, sorted by time.", "outputs": "DataFrame + new column `_pct_change` with row-over-row percent change.", "side_effects": "Adds one new column. First row per group has NaN. Order sensitive \u2014 ensure input is sorted.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "pdf_report", "name": "Pdf Report", "category": "sink", "description": "Render an upstream DataFrame to a PDF report (reportlab table mode or Jinja2/weasyprint HTML mode). Drop-in for Alteryx Render / Portfolio Composer.", "path": "assets/sinks/pdf_report", "tags": [ "sink", "alteryx" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/pdf_report/schema.json", "component_type": "dagster_component_templates.PdfReportComponent", "icon": "FileText", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/pdf_report/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/pdf_report/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/pdf_report/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/pdf_report/requirements.txt", "validation": { "level": "code", "last_validated": "2026-06-06" }, "agent_hints": { "inputs": "Any DataFrame (or multiple, via config).", "outputs": "None (sink \u2014 writes PDF file with formatted report).", "side_effects": "Requires reportlab/weasyprint. Writes to `file_path` on disk.", "anti_uses": "For structured data output use dataframe_to_csv/parquet. For emails use smtp_send_asset.", "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "reportlab" ] }, "produces": [ "asset" ] }, { "id": "pdf_text_extractor", "name": "Pdf Text Extractor", "category": "transformation", "description": "Extract text from a column containing PDF file paths or PDF bytes.", "path": "assets/transforms/pdf_text_extractor", "tags": [ "transformation", "documents", "pdf", "text-extraction", "ocr" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/pdf_text_extractor/schema.json", "component_type": "dagster_component_templates.PdfTextExtractorComponent", "icon": "FileText", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/pdf_text_extractor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/pdf_text_extractor/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/pdf_text_extractor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/pdf_text_extractor/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/arxiv_pdf.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with a PDF file path or bytes column.", "outputs": "DataFrame with extracted text (per page or per document).", "side_effects": "Requires pypdf / pdfplumber. Adds text columns; row count may grow (per page).", "anti_uses": "For OCR use a dedicated OCR component. For DOCX use document_ingestion.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "pdfplumber" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "pearson_correlation", "name": "Pearson Correlation", "category": "analytics", "description": "Compute the Pearson / Spearman / Kendall correlation matrix across numeric columns. Output in long form (one row per pair) or wide (square matrix). Drop-in for Alteryx's Pearson Correlation tool.", "path": "assets/analytics/pearson_correlation", "tags": [ "analytics", "statistics", "correlation", "pearson", "alteryx" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/pearson_correlation/schema.json", "component_type": "dagster_component_templates.PearsonCorrelationComponent", "icon": "Activity", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/pearson_correlation/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/pearson_correlation/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/pearson_correlation/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/pearson_correlation/requirements.txt", "validation": { "level": "code", "last_validated": "2026-06-05" }, "agent_hints": { "inputs": "DataFrame with numeric columns.", "outputs": "DataFrame with pairwise correlation matrix (columns \u00d7 columns).", "side_effects": "Reduces to N\u00d7N shape.", "requires_pip": [ "scipy" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset" ] }, { "id": "per_file_processor_job", "name": "PerFileProcessorJobComponent", "category": "jobs", "description": "List files in S3/GCS/ADLS matching a pattern, run a callable per file in parallel via DynamicOut. Optional archive-after-success.", "version": "1.0.0", "author": "Dagster Community", "path": "jobs/per_file_processor_job", "tags": [ "job", "dynamic-out", "files", "s3", "gcs", "adls", "inbox" ], "dependencies": { "pip": [ "boto3", "google-cloud-storage", "azure-storage-blob", "azure-identity" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/per_file_processor_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/per_file_processor_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/per_file_processor_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/per_file_processor_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/per_file_processor_job/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/per_file_processor.md", "last_validated": "2026-05-06" }, "produces": [ "job", "schedule" ], "agent_hints": {} }, { "id": "per_partition_backfill_job", "name": "PerPartitionBackfillJobComponent", "category": "jobs", "description": "Cron-driven parallel backfill of N partitions of an existing partitioned asset. Complements Dagster's first-class backfill machinery for predictable recurring rebuilds.", "version": "1.0.0", "author": "Dagster Community", "path": "jobs/per_partition_backfill_job", "tags": [ "job", "dynamic-out", "partition", "backfill", "schedule" ], "dependencies": { "pip": [] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/per_partition_backfill_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/per_partition_backfill_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/per_partition_backfill_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/per_partition_backfill_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/per_partition_backfill_job/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/partitions.md", "last_validated": "2026-05-08" }, "produces": [ "job", "schedule" ], "agent_hints": {} }, { "id": "per_row_http_fetcher", "name": "Per-Row HTTP Fetcher", "category": "transformation", "description": "For each row in an upstream DataFrame, fetch the URL in `url_column` via HTTP and append response body / status / optional parsed JSON. Concurrent via ThreadPoolExecutor. Drop-in for Alteryx's Download tool (per-row HTTP) \u2014 different shape from `rest_api_fetcher` which does one URL per asset.", "path": "assets/transforms/per_row_http_fetcher", "tags": [ "transformation", "http", "api", "download", "alteryx" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/per_row_http_fetcher/schema.json", "component_type": "dagster_component_templates.PerRowHttpFetcherComponent", "icon": "Globe", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/per_row_http_fetcher/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/per_row_http_fetcher/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/per_row_http_fetcher/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/per_row_http_fetcher/requirements.txt", "validation": { "level": "code", "last_validated": "2026-06-05" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "requests" ] }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "personio_ingestion", "name": "Personio Ingestion", "category": "ingestion", "description": "Component for ingesting Personio HR management data using dlt.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/personio_ingestion", "tags": [ "ingestion", "personio" ], "dependencies": { "pip": [ "dlt[personio]>=0.4.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/personio_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/personio_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/personio_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/personio_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/personio_ingestion/requirements.txt", "icon": "ArrowUpFromLine", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 hits vendor's REST API.", "outputs": "DataFrame with columns from Personio employees, absences, attendances.", "side_effects": "Read-only. Requires Personio API credentials. Rate-limited per Personio's tier.", "anti_uses": "For generic REST APIs use rest_api_fetcher. For writing back to Personio use its dedicated writer (if available).", "requires_resources": [ "personio_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "personio_resource", "name": "Personio Resource", "category": "resource", "description": "Register a PersonioResource wrapping the personio-py client for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/personio_resource", "tags": [ "resource", "personio", "hr", "people-ops" ], "dependencies": { "pip": [ "personio-py" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/personio_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/personio_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/personio_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/personio_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/personio_resource/requirements.txt", "icon": "si:personio", "x-dagster-provides": [ "personio_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "pgvector_asset", "name": "pgvector Asset", "category": "analytics", "description": "Generate text embeddings via OpenAI and upsert them into a PostgreSQL table", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/pgvector_asset", "tags": [ "analytics", "pgvector", "asset" ], "dependencies": { "pip": [ "openai", "pgvector", "sqlalchemy", "psycopg2-binary" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/pgvector_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/pgvector_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/pgvector_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/pgvector_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/pgvector_asset/requirements.txt", "icon": "si:postgresql", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "DataFrame with vector + metadata columns.", "outputs": "Reads or writes to a Postgres+pgvector table.", "side_effects": "Requires psycopg2 + pgvector extension in Postgres.", "anti_uses": "For managed vector DB use pinecone_asset / chromadb_asset.", "requires_pip": [ "psycopg2" ], "requires_resources": [ "postgres_resource" ] }, "produces": [ "asset" ], "consumes": [ "resource:pgvector" ] }, { "id": "pgvector_reader", "name": "pgvector Reader", "category": "source", "description": "Component for querying a pgvector table for similar vectors.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/sources/pgvector_reader", "tags": [ "source", "pgvector", "reader" ], "dependencies": { "pip": [ "pandas>=1.5.0", "sqlalchemy>=2.0.0", "psycopg2-binary>=2.9.0", "pgvector>=0.2.0", "openai>=1.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/pgvector_reader/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/pgvector_reader/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/pgvector_reader/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/pgvector_reader/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/pgvector_reader/requirements.txt", "icon": "si:postgresql", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root source) \u2014 vector similarity query against a Postgres+pgvector table.", "outputs": "DataFrame with matched rows.", "requires_pip": [ "psycopg2" ], "requires_resources": [ "postgres_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ], "consumes": [ "resource:pgvector" ] }, { "id": "pii_detector", "name": "Pii Detector", "category": "ai", "description": "Detect personally identifiable information (PII) in text columns using Microsoft Presidio.", "path": "assets/ai/pii_detector", "tags": [ "ai", "pii", "privacy", "nlp", "presidio" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/pii_detector/schema.json", "component_type": "dagster_component_templates.PiiDetectorComponent", "icon": "ShieldAlert", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/pii_detector/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/pii_detector/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/pii_detector/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/pii_detector/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/ai_no_llm.md", "last_validated": "2026-05-08" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "presidio-analyzer" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "pii_redactor", "name": "Pii Redactor", "category": "ai", "description": "Detect and redact PII from text columns, replacing entities with type placeholders or custom values.", "path": "assets/ai/pii_redactor", "tags": [ "ai", "pii", "privacy", "nlp", "redaction", "presidio" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/pii_redactor/schema.json", "component_type": "dagster_component_templates.PiiRedactorComponent", "icon": "EyeOff", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/pii_redactor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/pii_redactor/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/pii_redactor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/pii_redactor/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/ai_no_llm.md", "last_validated": "2026-05-08" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "presidio-analyzer", "presidio-anonymizer" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "pinecone_asset", "name": "Pinecone Asset", "category": "analytics", "description": "Upsert, query, or manage a Pinecone vector index as a Dagster asset.", "path": "assets/analytics/pinecone_asset", "tags": [ "analytics", "pinecone", "asset" ], "icon": "si:pinecone", "type": "dagster_component_templates.PineconeAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/pinecone_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/pinecone_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/pinecone_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/pinecone_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/pinecone_asset/requirements.txt", "component_type": "dagster_component_templates.PineconeAssetComponent", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "DataFrame with vector + metadata columns.", "outputs": "Reads or writes to Pinecone index.", "side_effects": "Requires pinecone-client + API key.", "requires_pip": [ "pinecone" ], "requires_resources": [ "pinecone_resource" ] }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pinecone-client", "pandas" ] }, "produces": [ "asset" ], "consumes": [ "resource:pinecone" ] }, { "id": "pinecone_reader", "name": "Pinecone Reader", "category": "source", "description": "Component for querying a Pinecone vector index.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/sources/pinecone_reader", "tags": [ "source", "pinecone", "reader" ], "dependencies": { "pip": [ "pandas>=1.5.0", "pinecone-client>=3.0.0", "openai>=1.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/pinecone_reader/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/pinecone_reader/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/pinecone_reader/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/pinecone_reader/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/pinecone_reader/requirements.txt", "icon": "si:pinecone", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root source) \u2014 queries Pinecone vector index by embedding or metadata filter.", "outputs": "DataFrame with matched rows: (id, score, embedding, metadata columns).", "side_effects": "Requires pinecone_resource.", "anti_uses": "For writing TO Pinecone use its asset writer. For local nearest-neighbor over pandas use sklearn NearestNeighbors.", "requires_pip": [ "pinecone" ], "requires_resources": [ "pinecone_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ], "consumes": [ "resource:pinecone" ] }, { "id": "pinterest_ads_ingestion", "name": "Pinterest Ads Ingestion", "category": "ingestion", "description": "Component for ingesting Pinterest Ads data using dlt - returns DataFrames.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/pinterest_ads_ingestion", "tags": [ "ingestion", "pinterest", "ads" ], "dependencies": { "pip": [ "dlt[rest_api]>=0.4.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/pinterest_ads_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/pinterest_ads_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/pinterest_ads_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/pinterest_ads_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/pinterest_ads_ingestion/requirements.txt", "icon": "ArrowUpFromLine", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 hits vendor's REST API.", "outputs": "DataFrame with columns from Pinterest Ads campaigns, ad groups, pins.", "side_effects": "Read-only. Requires Pinterest Ads API credentials. Rate-limited per Pinterest Ads's tier.", "anti_uses": "For generic REST APIs use rest_api_fetcher. For writing back to Pinterest Ads use its dedicated writer (if available).", "requires_resources": [ "pinterest_ads_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "pipedrive_ingestion", "name": "Pipedrive Ingestion", "category": "ingestion", "description": "Component for ingesting Pipedrive CRM data using dlt.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/pipedrive_ingestion", "tags": [ "ingestion", "pipedrive" ], "dependencies": { "pip": [ "dlt[pipedrive]>=0.4.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/pipedrive_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/pipedrive_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/pipedrive_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/pipedrive_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/pipedrive_ingestion/requirements.txt", "icon": "ArrowUpFromLine", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 hits vendor's REST API.", "outputs": "DataFrame with columns from Pipedrive deals, activities, contacts.", "side_effects": "Read-only. Requires Pipedrive API credentials. Rate-limited per Pipedrive's tier.", "anti_uses": "For generic REST APIs use rest_api_fetcher. For writing back to Pipedrive use its dedicated writer (if available).", "requires_resources": [ "pipedrive_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "pipedrive_resource", "name": "Pipedrive Resource", "category": "resource", "description": "Register a PipedriveResource for the Pipedrive CRM API for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/pipedrive_resource", "tags": [ "resource", "pipedrive", "crm", "sales" ], "dependencies": { "pip": [ "pipedrive-python-lib" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/pipedrive_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/pipedrive_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/pipedrive_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/pipedrive_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/pipedrive_resource/requirements.txt", "icon": "si:pipedrive", "x-dagster-provides": [ "pipedrive_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "pivot", "name": "PivotComponent", "category": "transformation", "description": "Pivot a DataFrame from long to wide \u2014 rotate row values into column headers with a chosen aggregation.", "version": "1.0.0", "author": "Dagster Community", "path": "transforms/pivot", "tags": [ "pivot", "long-to-wide", "reshape" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/pivot/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/pivot/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/pivot/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/pivot/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/pivot/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/pivot_unpivot.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame in long format (rows contain both category + measure).", "outputs": "DataFrame in wide format \u2014 `index` becomes row keys, `columns` values become NEW column headers (many new columns per unique value), aggregated `values`.", "side_effects": "Reshapes rows and columns significantly. Downstream steps must reference the NEW pivoted column names, not the original `columns` field values.", "anti_uses": "For long \u2192 many one-hot columns based on a category, use one_hot_encoding instead. For simple grouping without reshape, use summarize." }, "produces": [ "asset" ] }, { "id": "plaid_resource", "name": "Plaid Resource", "category": "resource", "description": "Plaid REST API client for fintech data: accounts, transactions, identity, balance.", "path": "resources/plaid_resource", "tags": [ "resource", "plaid", "fintech", "saas" ], "type": "dagster_component_templates.PlaidResourceComponent", "component_type": "dagster_component_templates.PlaidResourceComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/plaid_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/plaid_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/plaid_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/plaid_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/plaid_resource/requirements.txt", "icon": "CreditCard", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/enterprise_saas.md", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "requests" ] }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "planned_catalog_agent", "name": "Planned Catalog Agent", "category": "ai", "description": "StateBackedComponent variant of catalog_agent. Runs the LLM planner + real materializations ONCE at prepare time (write_state_to_path) and caches the full plan to Dagster's native state store. Every subsequent load reads the cache and emits REAL Dagster assets \u2014 zero LLM cost. Perfect for the 'input a task in Dagster+ UI, real assets appear' UX.", "path": "assets/ai/planned_catalog_agent", "tags": [ "ai", "agent", "agentic", "state-backed", "catalog", "meta-agent", "planner", "cached", "openai" ], "icon": "Sparkles", "type": "dagster_community_components.PlannedCatalogAgentComponent", "component_type": "dagster_community_components.PlannedCatalogAgentComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/planned_catalog_agent/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/planned_catalog_agent/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/planned_catalog_agent/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/planned_catalog_agent/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/planned_catalog_agent/requirements.txt", "dependencies": { "pip": [ "pandas", "openai>=1.0.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/planned_catalog_agent.md", "last_validated": "2026-07-07" }, "version": "1.0.0", "author": "Dagster Community", "produces": [ "multi_asset" ], "stateful": true, "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "point_in_polygon", "name": "Point In Polygon", "category": "analytics", "description": "Annotate each row with the GeoJSON polygon region it falls inside.", "path": "assets/analytics/point_in_polygon", "tags": [ "analytics", "point", "polygon" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/point_in_polygon/schema.json", "component_type": "dagster_component_templates.PointInPolygonComponent", "icon": "BarChart2", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/point_in_polygon/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/point_in_polygon/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/point_in_polygon/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/point_in_polygon/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with lat/lon columns + a polygon set (via upstream or config).", "outputs": "DataFrame + `polygon_id` (or NULL) per row.", "side_effects": "Adds column. Requires shapely.", "anti_uses": "For nearest-polygon (not containment) use spatial_join with a distance metric.", "requires_pip": [ "shapely" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "shapely" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "points_from_latlon", "name": "Points from Lat/Lon", "category": "transformation", "description": "Build Shapely Point geometries from a DataFrame's latitude / longitude columns and add them as a `geometry` column. Drop-in for Alteryx's Create Points tool.", "path": "assets/transforms/points_from_latlon", "tags": [ "spatial", "geo", "geopandas", "create_points", "alteryx" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/points_from_latlon/schema.json", "component_type": "dagster_component_templates.PointsFromLatLonComponent", "icon": "MapPin", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/points_from_latlon/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/points_from_latlon/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/points_from_latlon/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/points_from_latlon/requirements.txt", "validation": { "level": "code", "last_validated": "2026-06-05" }, "agent_hints": { "inputs": "DataFrame with lat/lon columns.", "outputs": "DataFrame + a `geometry` column of shapely Point objects.", "side_effects": "Adds column. Downstream spatial ops require shapely.", "requires_pip": [ "shapely" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "geopandas", "shapely" ] }, "produces": [ "asset" ] }, { "id": "polars_io_manager", "name": "PolarsIOManager", "category": "io_manager", "description": "Wrap the official `dagster-polars` PolarsParquetIOManager so polars.DataFrame assets persist as Parquet.", "version": "1.0.0", "author": "Dagster Community", "path": "io_managers/polars_io_manager", "tags": [ "io_manager", "polars", "parquet", "local" ], "dependencies": { "pip": [ "dagster", "dagster-polars", "polars", "pyarrow" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/polars_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/polars_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/polars_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/polars_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/polars_io_manager/requirements.txt", "validation": { "level": "live", "last_validated": "2026-05-19", "evidence": "setup_local_io_demo.sh" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "polars_pipeline", "name": "PolarsPipeline", "category": "transformation", "description": "Multi-step polars LazyFrame chain in a single Dagster asset (query-plan fusion + parallelism).", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/polars_pipeline", "tags": [ "transformation", "polars", "lazy", "pushdown", "pipeline" ], "dependencies": { "pip": [ "dagster", "polars" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/polars_pipeline/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/polars_pipeline/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/polars_pipeline/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/polars_pipeline/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/polars_pipeline/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/polars_pipeline.md", "last_validated": "2026-05-19" }, "agent_hints": { "inputs": "DataFrame(s) \u2014 accepts pandas or polars.", "outputs": "DataFrame result of a chained polars expression.", "side_effects": "Uses polars lazy execution. Faster than pandas chains for CPU-bound ops on medium-large data.", "anti_uses": "For simple 1-step transforms prefer the dedicated component (faster to author).", "requires_pip": [ "polars" ] }, "produces": [ "asset" ] }, { "id": "polars_read_database", "name": "PolarsReadDatabase", "category": "source", "description": "Execute SQL against a database, return polars (compute pushed down via the SQL query itself).", "version": "1.0.0", "author": "Dagster Community", "path": "assets/sources/polars_read_database", "tags": [ "source", "polars", "sql", "pushdown", "database" ], "dependencies": { "pip": [ "dagster", "polars", "connectorx", "pyarrow" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/polars_read_database/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/polars_read_database/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/polars_read_database/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/polars_read_database/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/polars_read_database/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-19" }, "agent_hints": { "inputs": "None (root source) \u2014 reads from a database via Polars (fast, columnar).", "outputs": "polars DataFrame (or convert to pandas per downstream needs).", "side_effects": "Requires polars + connection resource. Faster than dataframe_from_sql for large results.", "requires_pip": [ "polars" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "polars_scan_parquet", "name": "PolarsScanParquet", "category": "source", "description": "Read parquet via polars's lazy scanner with predicate + column pushdown.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/sources/polars_scan_parquet", "tags": [ "source", "polars", "parquet", "pushdown", "lazy" ], "dependencies": { "pip": [ "dagster", "polars" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/polars_scan_parquet/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/polars_scan_parquet/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/polars_scan_parquet/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/polars_scan_parquet/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/polars_scan_parquet/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/polars_pushdown.md", "last_validated": "2026-05-19" }, "agent_hints": { "inputs": "None (root source) \u2014 lazy scan of Parquet files via Polars.", "outputs": "polars LazyFrame \u2014 no data loaded until .collect().", "side_effects": "Requires polars. Great for predicate pushdown to Parquet files.", "requires_pip": [ "polars" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "poly_build", "name": "Poly Build", "category": "transformation", "description": "Construct polygon (or polyline) geometries from a points DataFrame by grouping rows into rings and ordering them by a sequence column. Drop-in for Alteryx's Poly-Build tool. Accepts either lat/lng coords OR an existing Shapely Point column.", "path": "assets/transforms/poly_build", "tags": [ "transformation", "alteryx" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/poly_build/schema.json", "component_type": "dagster_component_templates.PolyBuildComponent", "icon": "Hexagon", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/poly_build/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/poly_build/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/poly_build/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/poly_build/requirements.txt", "validation": { "level": "code", "last_validated": "2026-06-06" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "shapely" ] }, "agent_hints": { "inputs": "DataFrame with a geometry column (shapely / geopandas).", "outputs": "DataFrame with polygons constructed from ordered point sets.", "side_effects": "Requires shapely + geopandas.", "anti_uses": "For lat/lon columns use points_from_latlon first to construct geometry.", "requires_pip": [ "shapely", "geopandas" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "polytomic_asset", "name": "Polytomic Asset", "category": "sink", "description": "Polytomic reverse-ETL component \u2014 one Dagster asset per Polytomic sync.", "path": "assets/sinks/polytomic_asset", "tags": [ "sink", "polytomic", "asset" ], "icon": "ArrowDownToLine", "type": "dagster_component_templates.PolytomicAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/polytomic_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/polytomic_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/polytomic_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/polytomic_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/polytomic_asset/requirements.txt", "component_type": "dagster_component_templates.PolytomicAssetComponent", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "DataFrame OR reads from a source system per config.", "outputs": "Runs a Polytomic sync \u2014 writes to configured destination.", "side_effects": "Requires polytomic_api_key. Delegates work to Polytomic infra.", "anti_uses": "For direct writes with Dagster-managed lineage prefer the dedicated dataframe_to_.", "requires_resources": [ "polytomic_resource" ] }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "requests" ] }, "produces": [ "multi_asset" ], "stateful": true, "consumes": [ "resource:polytomic" ] }, { "id": "postgres_backup_job", "name": "PostgresBackupJobComponent", "category": "jobs", "description": "Run pg_dump \u2192 upload to S3/GCS/local \u2014 backup as a job, no asset materialized.", "version": "1.0.0", "author": "Dagster Community", "path": "jobs/postgres_backup_job", "tags": [ "job", "postgres", "backup", "pg-dump" ], "dependencies": { "pip": [ "boto3" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/postgres_backup_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/postgres_backup_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/postgres_backup_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/postgres_backup_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/postgres_backup_job/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "job", "schedule" ], "agent_hints": {}, "consumes": [ "resource:postgres" ] }, { "id": "postgres_io_manager", "name": "PostgreSQL IO Manager", "category": "io_manager", "description": "Register a PostgreSQL IO manager so assets are automatically stored in and loaded from Postgres tables", "version": "0.1.0", "author": "Dagster Labs", "path": "io_managers/postgres_io_manager", "tags": [ "io_manager", "postgres", "postgresql", "sql", "database" ], "dependencies": { "pip": [ "psycopg2-binary>=2.9.0", "sqlalchemy>=2.0.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/postgres_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/postgres_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/postgres_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/postgres_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/postgres_io_manager/requirements.txt", "icon": "si:postgresql", "x-dagster-provides": [ "io_manager" ], "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_postgres.md", "last_validated": "2026-05-06" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:postgres" ] }, { "id": "postgres_resource", "name": "PostgreSQL Resource", "category": "resource", "description": "Register a PostgreSQL resource for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/postgres_resource", "tags": [ "resource", "postgres", "database" ], "dependencies": { "pip": [ "psycopg2-binary" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/postgres_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/postgres_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/postgres_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/postgres_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/postgres_resource/requirements.txt", "icon": "si:postgresql", "x-dagster-provides": [ "postgres_resource" ], "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_postgres.md", "last_validated": "2026-05-06" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:postgres" ] }, { "name": "PostHog Events Ingestion", "category": "ingestion", "description": "Pull events from a PostHog project via the /events REST API. Handles cursor pagination automatically. Returns a pandas DataFrame with flattened event fields (id, event, distinct_id, timestamp, properties.*, person.*).", "path": "assets/ingestion/posthog_events_ingestion", "tags": [ "ingestion", "posthog", "product-analytics", "saas" ], "icon": "BarChart", "type": "dagster_community_components.PostHogEventsIngestionComponent", "component_type": "dagster_community_components.PostHogEventsIngestionComponent", "dependencies": { "pip": [ "pandas", "requests" ] }, "agent_hints": { "inputs": "None (root ingestion) \u2014 reads events from a PostHog project via REST API.", "outputs": "DataFrame with flattened event fields (id, event, distinct_id, timestamp, properties.*, person.*).", "side_effects": "Read-only. Requires POSTHOG_API_KEY personal API key with `query:read` scope. Cursor-paginated.", "anti_uses": "For writing events INTO PostHog use the PostHog SDK directly (not a Dagster component). For real-time streaming use PostHog's webhooks + kafka_to_database_asset. Prefer this for backfills / analytics warehouses.", "requires_resources": [ "posthog_api_key" ], "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "validation": { "level": "code", "last_validated": "2026-07-08" }, "id": "posthog_events_ingestion", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/posthog_events_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/posthog_events_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/posthog_events_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/posthog_events_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/posthog_events_ingestion/requirements.txt", "produces": [ "asset" ], "consumes": [ "resource:posthog" ] }, { "id": "precisely_address_verify", "name": "Precisely Address Verify", "category": "transformation", "description": "Verify + standardize an address column via Precisely Address Verify / Geo Addressing REST API. CASS-certified standardized address + match-quality score columns added alongside the source. Distinct from generic geocoders.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/precisely_address_verify", "tags": [ "transformation", "precisely", "address", "geocoding", "data_quality" ], "dependencies": { "pip": [ "pandas>=2.0.0", "requests>=2.28.0" ] }, "icon": "MapPin", "validation": { "level": "code", "last_validated": "2026-05-27", "evidence": "Trial-key path makes live validation possible with small volumes; not yet exercised end-to-end against a real Precisely tenant." }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/precisely_address_verify/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/precisely_address_verify/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/precisely_address_verify/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/precisely_address_verify/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/precisely_address_verify/requirements.txt", "vendor": "Precisely", "agent_hints": { "inputs": "DataFrame with address strings.", "outputs": "DataFrame + verified address components + confidence score.", "side_effects": "Requires Precisely API license \u2014 paid.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:precisely" ] }, { "id": "precisely_connect_job_trigger", "name": "Precisely Connect ETL Job Trigger", "category": "infrastructure", "description": "Trigger a Precisely Connect ETL job-run from Dagster via the /runtask endpoint. Materializable asset that fires the job + captures jobRunId in metadata. Pairs with precisely_job_sensor in observation mode for submit\u2192watch.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/infrastructure/precisely_connect_job_trigger", "tags": [ "infrastructure", "precisely", "etl", "trigger" ], "dependencies": { "pip": [ "requests>=2.28.0" ] }, "icon": "PlayCircle", "validation": { "level": "code", "last_validated": "2026-05-27", "evidence": "Awaiting customer pilot with a real Connect ETL server; YAML loads + @asset builds cleanly." }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/precisely_connect_job_trigger/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/precisely_connect_job_trigger/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/precisely_connect_job_trigger/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/precisely_connect_job_trigger/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/precisely_connect_job_trigger/requirements.txt", "vendor": "Precisely", "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:precisely" ] }, { "id": "precisely_dis_dq_check", "name": "Precisely DIS Data Quality Check", "category": "check", "description": "Wrap Precisely Data Integrity Suite (DIS) Data Quality rules as N Dagster asset checks \u2014 one @asset_check per rule. OAuth2 client-credentials; per-rule pass/fail + score lands on the target asset.", "version": "1.0.0", "author": "Dagster Community", "path": "asset_checks/precisely_dis_dq_check", "tags": [ "asset_check", "precisely", "dis", "data_quality", "dq" ], "dependencies": { "pip": [ "requests>=2.28.0" ] }, "icon": "Search", "validation": { "level": "code", "last_validated": "2026-05-27", "evidence": "Awaiting customer pilot with a real DIS tenant; YAML loads + build_defs returns N AssetCheckSpec objects cleanly." }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/precisely_dis_dq_check/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/precisely_dis_dq_check/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/precisely_dis_dq_check/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/precisely_dis_dq_check/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/precisely_dis_dq_check/requirements.txt", "vendor": "Precisely", "produces": [ "asset_check" ], "agent_hints": {}, "consumes": [ "resource:precisely" ] }, { "id": "precisely_job_sensor", "name": "Precisely Job Sensor", "category": "sensor", "description": "Sensor-only \u2014 fire a Dagster RunRequest when a Precisely Connect ETL job-run reaches terminal SUCCESS. Uses the documented Job Status endpoint; Precisely owns the run.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/precisely_job_sensor", "tags": [ "sensor", "precisely", "job", "etl" ], "dependencies": { "pip": [ "requests>=2.28.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/precisely_job_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/precisely_job_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/precisely_job_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/precisely_job_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/precisely_job_sensor/requirements.txt", "icon": "Radar", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/precisely_validation.md", "last_validated": "2026-05-22" }, "vendor": "Precisely", "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:precisely" ] }, { "id": "precision_match", "name": "Precision Match", "category": "ai", "description": "LLM-assisted fuzzy matching to standardize varied string representations to canonical forms.", "path": "assets/ai/precision_match", "tags": [ "ai", "precision", "match" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/precision_match/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/precision_match/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/precision_match/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/precision_match/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/precision_match/requirements.txt", "icon": "Sparkles", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/local_nlp.md", "last_validated": "2026-05-08" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "litellm" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "priority_scorer", "name": "Priority Scorer", "category": "analytics", "description": "Component for scoring ticket priority and predicting SLA breaches.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/priority_scorer", "tags": [ "analytics", "priority", "scorer" ], "dependencies": { "pip": [ "pandas>=1.5.0", "numpy>=1.20.0", "openai>=1.0.0", "anthropic>=0.18.0", "scikit-learn>=1.0.0", "xgboost>=1.7.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/priority_scorer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/priority_scorer/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/priority_scorer/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/priority_scorer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/priority_scorer/requirements.txt", "icon": "BarChart2", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with feature columns.", "outputs": "DataFrame + `priority_score` column (weighted sum per config).", "side_effects": "Pure pandas; no external deps." }, "produces": [ "asset", "asset_check" ] }, { "id": "product_analytics_standardizer", "name": "Product Analytics Standardizer", "category": "analytics", "description": "Component for standardizing product analytics data across platforms.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/product_analytics_standardizer", "tags": [ "analytics", "product", "standardizer" ], "dependencies": { "pip": [ "pandas>=1.5.0", "numpy>=1.24.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/product_analytics_standardizer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/product_analytics_standardizer/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/product_analytics_standardizer/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/product_analytics_standardizer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/product_analytics_standardizer/requirements.txt", "icon": "BarChart2", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with product-analytics events (Amplitude, Mixpanel, etc.).", "outputs": "DataFrame with standardized schema (user_id, event, timestamp, properties).", "side_effects": "Reshapes / renames per source vendor." }, "produces": [ "asset", "asset_check" ] }, { "id": "product_recommendations", "name": "Product Recommendations", "category": "analytics", "description": "Component for generating product recommendations.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/product_recommendations", "tags": [ "analytics", "product", "recommendations" ], "dependencies": { "pip": [] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/product_recommendations/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/product_recommendations/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/product_recommendations/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/product_recommendations/example.yaml", "icon": "BarChart2", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/product_recommendations/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with user \u00d7 item interactions.", "outputs": "DataFrame with top-N recommendations per user.", "side_effects": "Collaborative-filtering or content-based per config. May need sklearn/surprise.", "requires_pip": [ "sklearn" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ] }, { "id": "product_usage_analytics", "name": "Product Usage Analytics", "category": "analytics", "description": "Component that analyzes product feature usage and user engagement.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/product_usage_analytics", "tags": [ "analytics", "product", "usage" ], "dependencies": { "pip": [] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/product_usage_analytics/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/product_usage_analytics/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/product_usage_analytics/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/product_usage_analytics/example.yaml", "icon": "BarChart2", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/product_usage_analytics/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame of product-usage events.", "outputs": "DataFrame of engagement metrics per user/feature." }, "produces": [ "asset" ] }, { "id": "prometheus_resource", "name": "PrometheusResource", "category": "resource", "description": "Push metrics to a Prometheus pushgateway via dagster-prometheus.", "version": "1.0.0", "author": "Dagster Community", "path": "resources/prometheus_resource", "tags": [ "resource", "prometheus", "metrics", "official" ], "dependencies": { "pip": [ "dagster", "dagster-prometheus", "prometheus_client" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/prometheus_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/prometheus_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/prometheus_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/prometheus_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/prometheus_resource/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/prometheus_demo.md", "last_validated": "2026-05-14" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:prometheus" ] }, { "id": "propensity_scoring", "name": "Propensity Scoring", "category": "analytics", "description": "Component for calculating customer propensity scores.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/propensity_scoring", "tags": [ "analytics", "propensity", "scoring" ], "dependencies": { "pip": [] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/propensity_scoring/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/propensity_scoring/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/propensity_scoring/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/propensity_scoring/example.yaml", "icon": "BarChart2", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/propensity_scoring/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with features + binary conversion label.", "outputs": "DataFrame with propensity score column.", "side_effects": "Requires sklearn.", "requires_pip": [ "sklearn" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ] }, { "id": "pubsub_monitor", "name": "Google Pub/Sub Monitor", "category": "sensor", "description": "Component for pulling messages from a Google Cloud Pub/Sub subscription.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/pubsub_monitor", "tags": [ "sensor", "pubsub", "monitor" ], "dependencies": { "pip": [ "google-cloud-pubsub>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/pubsub_monitor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/pubsub_monitor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/pubsub_monitor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/pubsub_monitor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/pubsub_monitor/requirements.txt", "icon": "Radar", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Google", "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:pubsub" ] }, { "id": "pubsub_observation_sensor", "name": "Pub/Sub Observation Sensor", "category": "observation", "description": "PubsubObservationSensorComponent", "version": "1.0.0", "author": "Dagster Community", "path": "observations/pubsub_observation_sensor", "tags": [ "observation", "pubsub", "sensor" ], "dependencies": { "pip": [ "google-cloud-pubsub>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/pubsub_observation_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/pubsub_observation_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/pubsub_observation_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/pubsub_observation_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/pubsub_observation_sensor/requirements.txt", "icon": "Eye", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Google", "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:pubsub" ] }, { "id": "pubsub_publish_asset", "name": "PubSubPublishAssetComponent", "category": "sink", "description": "Publish DataFrame rows as Google Cloud Pub/Sub messages \u2014 one message per row. Columns can be mapped into Pub/Sub message attributes for downstream filter routing on subscribers.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/sinks/pubsub_publish_asset", "tags": [ "sink", "google", "pubsub", "messaging", "streaming" ], "dependencies": { "pip": [ "dagster>=1.8.0", "pandas>=1.5.0", "google-cloud-pubsub>=2.18.0", "google-auth>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/pubsub_publish_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/pubsub_publish_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/pubsub_publish_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/pubsub_publish_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/pubsub_publish_asset/requirements.txt", "component_type": "dagster_component_templates.PubSubPublishAssetComponent", "validation": { "level": "live", "last_validated": "2026-05-11" }, "vendor": "Google", "agent_hints": { "inputs": "DataFrame of messages.", "outputs": "None (sink \u2014 publishes to Google Pub/Sub topic).", "side_effects": "One message per row.", "requires_resources": [ "gcp_credentials" ], "input_type": "pd.DataFrame", "output_type": null }, "produces": [ "asset" ], "consumes": [ "resource:pubsub" ] }, { "id": "pubsub_to_database_asset", "name": "Pub/Sub to Database", "category": "ingestion", "description": "Pull messages from a GCP Pub/Sub subscription and write to a database table.", "path": "assets/ingestion/pubsub_to_database_asset", "tags": [ "ingestion", "pubsub", "database", "asset" ], "icon": "ArrowUpFromLine", "type": "dagster_component_templates.PubSubToDatabaseAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/pubsub_to_database_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/pubsub_to_database_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/pubsub_to_database_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/pubsub_to_database_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/pubsub_to_database_asset/requirements.txt", "component_type": "dagster_component_templates.PubSubToDatabaseAssetComponent", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Google", "agent_hints": { "inputs": "None (root ingestion) \u2014 consumes from Google Pub/Sub, writes to DB.", "outputs": "None (sink-like).", "side_effects": "Requires gcp_credentials + database_connection.", "requires_resources": [ "gcp_credentials", "database_connection" ], "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "google-cloud-pubsub", "pandas", "sqlalchemy" ] }, "produces": [ "asset" ], "consumes": [ "resource:pubsub" ] }, { "id": "pulsar_monitor", "name": "Apache Pulsar Monitor", "category": "sensor", "description": "Component for monitoring an Apache Pulsar topic for new messages.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/pulsar_monitor", "tags": [ "sensor", "pulsar", "monitor" ], "dependencies": { "pip": [ "pulsar-client>=3.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/pulsar_monitor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/pulsar_monitor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/pulsar_monitor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/pulsar_monitor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/pulsar_monitor/requirements.txt", "icon": "Radar", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/pulsar.md", "last_validated": "2026-05-14" }, "produces": [ "sensor" ], "agent_hints": {} }, { "id": "pulsar_observation_sensor", "name": "Pulsar Observation Sensor", "category": "observation", "description": "PulsarObservationSensorComponent", "version": "1.0.0", "author": "Dagster Community", "path": "observations/pulsar_observation_sensor", "tags": [ "observation", "pulsar", "sensor" ], "dependencies": { "pip": [ "pulsar-client>=3.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/pulsar_observation_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/pulsar_observation_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/pulsar_observation_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/pulsar_observation_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/pulsar_observation_sensor/requirements.txt", "icon": "Eye", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/pulsar.md", "last_validated": "2026-05-14" }, "produces": [ "sensor" ], "agent_hints": {} }, { "id": "pulsar_to_database_asset", "name": "Pulsar to Database", "category": "ingestion", "description": "Consume messages from an Apache Pulsar topic and write to a database table.", "path": "assets/ingestion/pulsar_to_database_asset", "tags": [ "ingestion", "pulsar", "database", "asset" ], "icon": "ArrowUpFromLine", "type": "dagster_component_templates.PulsarToDatabaseAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/pulsar_to_database_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/pulsar_to_database_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/pulsar_to_database_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/pulsar_to_database_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/pulsar_to_database_asset/requirements.txt", "component_type": "dagster_component_templates.PulsarToDatabaseAssetComponent", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/pulsar.md", "last_validated": "2026-05-14" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 consumes from message broker, writes rows to DB.", "outputs": "None (sink-like \u2014 persists to configured DB).", "side_effects": "Requires Pulsar broker + database_connection.", "anti_uses": "For DataFrame return use a dedicated Pulsar_reader (if available). For file ingest use file_ingestion.", "requires_resources": [ "pulsar_resource", "database_connection" ], "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "pulsar-client", "pandas", "sqlalchemy" ] }, "produces": [ "asset" ] }, { "id": "pulumi_asset", "name": "Pulumi Asset", "category": "infrastructure", "description": "Deploy a Pulumi stack as a Dagster asset.", "path": "assets/infrastructure/pulumi_asset", "tags": [ "infrastructure", "pulumi", "asset" ], "icon": "si:pulumi", "type": "dagster_component_templates.PulumiAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/pulumi_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/pulumi_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/pulumi_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/pulumi_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/pulumi_asset/requirements.txt", "component_type": "dagster_component_templates.PulumiAssetComponent", "validation": { "level": "code", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster" ] }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "purchase_order_extractor", "name": "Purchase Order Extractor", "category": "ai", "description": "Extract structured data from purchase orders using an LLM.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/purchase_order_extractor", "tags": [ "ai", "extraction", "procurement", "finance" ], "dependencies": { "pip": [ "dagster", "pandas>=1.5.0", "litellm>=1.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/purchase_order_extractor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/purchase_order_extractor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/purchase_order_extractor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/purchase_order_extractor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/purchase_order_extractor/requirements.txt", "icon": "ShoppingCart", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/document_extractors.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "pyspark_pipeline", "name": "PySparkPipeline", "category": "transformation", "description": "Multi-step PySpark DataFrame chain in a single Dagster asset (Catalyst-optimized).", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/pyspark_pipeline", "tags": [ "transformation", "pyspark", "spark", "lazy", "pushdown", "pipeline" ], "dependencies": { "pip": [ "dagster", "pyspark" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/pyspark_pipeline/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/pyspark_pipeline/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/pyspark_pipeline/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/pyspark_pipeline/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/pyspark_pipeline/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/pyspark_pipeline.md", "last_validated": "2026-05-19" }, "agent_hints": { "inputs": "Upstream DataFrame(s) or file paths.", "outputs": "Spark DataFrame or the collected pandas result.", "side_effects": "Spins up a Spark session \u2014 heavy. Best for data > 100M rows or when Spark cluster is already up.", "anti_uses": "For < 10M rows use the pandas-based transforms. Requires pyspark.", "requires_pip": [ "pyspark" ] }, "produces": [ "asset" ] }, { "id": "pyspark_resource", "name": "PySpark Resource", "category": "resource", "description": "Register a dagster-pyspark PySparkResource for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/pyspark_resource", "tags": [ "resource", "spark", "pyspark", "big-data" ], "dependencies": { "pip": [ "dagster-pyspark" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/pyspark_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/pyspark_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/pyspark_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/pyspark_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/pyspark_resource/requirements.txt", "icon": "si:apachespark", "x-dagster-provides": [ "pyspark_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "python_callable_job", "name": "PythonCallableJobComponent", "category": "jobs", "description": "Run an arbitrary Python callable as a Dagster job \u2014 Airflow PythonOperator equivalent.", "version": "1.0.0", "author": "Dagster Community", "path": "jobs/python_callable_job", "tags": [ "job", "python", "task", "airflow-style" ], "dependencies": { "pip": [] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/python_callable_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/python_callable_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/python_callable_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/python_callable_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/python_callable_job/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/composition_primitives.md", "last_validated": "2026-05-14" }, "produces": [ "job", "schedule" ], "agent_hints": {} }, { "id": "qdrant_resource", "name": "Qdrant Resource", "category": "resource", "description": "Register a dagster-qdrant QdrantResource for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/qdrant_resource", "tags": [ "resource", "qdrant", "vector-db", "ai" ], "dependencies": { "pip": [ "dagster-qdrant" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/qdrant_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/qdrant_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/qdrant_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/qdrant_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/qdrant_resource/requirements.txt", "icon": "si:qdrant", "x-dagster-provides": [ "qdrant_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "r_script", "name": "R Script", "category": "transformation", "description": "Run an R script against an upstream DataFrame. Drop-in for Alteryx's R Tool. Two backends: rpy2 (in-process) or Rscript (subprocess + parquet/csv handoff).", "path": "assets/transforms/r_script", "tags": [ "transformation", "r", "alteryx", "ml" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/r_script/schema.json", "component_type": "dagster_community_components.RScriptComponent", "icon": "Code", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/r_script/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/r_script/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/r_script/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/r_script/requirements.txt", "validation": { "level": "code", "last_validated": "2026-06-06" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "pyarrow" ] }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "rabbitmq_monitor", "name": "RabbitMQ Monitor", "category": "sensor", "description": "Component for polling a RabbitMQ queue for new messages.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/rabbitmq_monitor", "tags": [ "sensor", "rabbitmq", "monitor" ], "dependencies": { "pip": [ "pika>=1.3.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/rabbitmq_monitor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/rabbitmq_monitor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/rabbitmq_monitor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/rabbitmq_monitor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/rabbitmq_monitor/requirements.txt", "icon": "si:rabbitmq", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/rabbitmq.md", "last_validated": "2026-05-14" }, "produces": [ "sensor" ], "agent_hints": {} }, { "id": "rabbitmq_observation_sensor", "name": "RabbitMQ Observation Sensor", "category": "observation", "description": "RabbitmqObservationSensorComponent", "version": "1.0.0", "author": "Dagster Community", "path": "observations/rabbitmq_observation_sensor", "tags": [ "observation", "rabbitmq", "sensor" ], "dependencies": { "pip": [ "pika>=1.3.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/rabbitmq_observation_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/rabbitmq_observation_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/rabbitmq_observation_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/rabbitmq_observation_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/rabbitmq_observation_sensor/requirements.txt", "icon": "si:rabbitmq", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/rabbitmq.md", "last_validated": "2026-05-14" }, "produces": [ "sensor" ], "agent_hints": {} }, { "id": "rabbitmq_to_database_asset", "name": "RabbitMQ to Database", "category": "ingestion", "description": "Drain messages from a RabbitMQ queue and write them to a database table.", "path": "assets/ingestion/rabbitmq_to_database_asset", "tags": [ "ingestion", "rabbitmq", "database", "asset" ], "icon": "si:rabbitmq", "type": "dagster_component_templates.RabbitMQToDatabaseAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/rabbitmq_to_database_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/rabbitmq_to_database_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/rabbitmq_to_database_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/rabbitmq_to_database_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/rabbitmq_to_database_asset/requirements.txt", "component_type": "dagster_component_templates.RabbitMQToDatabaseAssetComponent", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/rabbitmq.md", "last_validated": "2026-05-14" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 consumes from message broker, writes rows to DB.", "outputs": "None (sink-like \u2014 persists to configured DB).", "side_effects": "Requires RabbitMQ broker + database_connection.", "anti_uses": "For DataFrame return use a dedicated RabbitMQ_reader (if available). For file ingest use file_ingestion.", "requires_resources": [ "rabbitmq_resource", "database_connection" ], "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "pika", "pandas", "sqlalchemy" ] }, "produces": [ "asset" ] }, { "id": "rag_pipeline", "name": "RAG Pipeline", "category": "ai", "description": "Component for RAG pipeline.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/rag_pipeline", "tags": [ "ai", "rag", "pipeline" ], "dependencies": { "pip": [ "openai>=1.0.0", "anthropic>=0.18.0", "chromadb>=0.4.0", "pinecone-client>=3.0.0", "qdrant-client>=1.7.0", "sentence-transformers>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/rag_pipeline/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/rag_pipeline/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/rag_pipeline/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/rag_pipeline/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/rag_pipeline/requirements.txt", "icon": "Sparkles", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/vector_rag.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "random_forest_model", "name": "Random Forest", "category": "analytics", "description": "Fit a random forest ensemble model for classification or regression.", "path": "assets/analytics/random_forest_model", "tags": [ "analytics", "random", "forest", "model" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/random_forest_model/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/random_forest_model/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/random_forest_model/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/random_forest_model/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/random_forest_model/requirements.txt", "icon": "BarChart2", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/spacex_join.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with numeric feature columns + target column.", "outputs": "DataFrame with predictions + feature importances.", "side_effects": "Bagging ensemble \u2014 reduces variance. Requires sklearn.", "anti_uses": "For interpretability prefer decision_tree_model. For raw speed on tiny data use logistic_regression_model.", "requires_pip": [ "sklearn" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "scikit-learn" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "rank", "name": "Rank", "category": "transformation", "description": "Rank records by a column, with optional grouping.", "path": "assets/transforms/rank", "tags": [ "transformation", "rank" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/rank/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/rank/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/rank/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/rank/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/rank/requirements.txt", "icon": "Shuffle", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/kitchen_sink.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with a numeric column to rank.", "outputs": "DataFrame + a NEW rank column (per group if group_by set).", "side_effects": "Adds one column. Ties handled per config (dense/min/max/first).", "anti_uses": "For top-N filtering use top_n_per_group. For sort-only use arrange.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "receipt_extractor", "name": "Receipt Extractor", "category": "ai", "description": "Extract structured fields from retail receipts using an LLM.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/receipt_extractor", "tags": [ "ai", "extraction", "receipt", "finance" ], "dependencies": { "pip": [ "dagster", "pandas>=1.5.0", "litellm>=1.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/receipt_extractor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/receipt_extractor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/receipt_extractor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/receipt_extractor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/receipt_extractor/requirements.txt", "icon": "Receipt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/document_extractors.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "record_id", "name": "Record ID", "category": "transformation", "description": "Add a unique sequential identifier to each row.", "path": "assets/transforms/record_id", "tags": [ "transformation", "record" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/record_id/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/record_id/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/record_id/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/record_id/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/record_id/requirements.txt", "icon": "Shuffle", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/transformations.md", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "redis_reader", "name": "Redis Reader", "category": "source", "description": "Component for reading keys from a Redis instance.", "path": "assets/sources/redis_reader", "tags": [ "source", "redis", "reader" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/redis_reader/schema.json", "component_type": "dagster_component_templates.RedisReaderComponent", "icon": "si:redis", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/redis_reader/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/redis_reader/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/redis_reader/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/redis_reader/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_redis.md", "last_validated": "2026-05-06" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "redis" ] }, "agent_hints": { "inputs": "None (root source) \u2014 reads documents/records from Redis (keys/values).", "outputs": "DataFrame with columns from Redis (keys/values) docs (nested fields may need dataframe_flatten_nested_columns downstream).", "side_effects": "Read-only. Requires redis_resource.", "anti_uses": "For writing TO Redis (keys/values) use its writer. For SQL DBs use dataframe_from_sql.", "requires_resources": [ "redis_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ], "consumes": [ "resource:redis" ] }, { "id": "redis_resource", "name": "Redis Resource", "category": "resource", "description": "Register a Redis resource for in-memory key-value store and pub/sub access", "version": "1.0.0", "author": "Dagster Community", "path": "resources/redis_resource", "tags": [ "resource", "redis", "database", "cache" ], "dependencies": { "pip": [ "redis>=4.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/redis_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/redis_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/redis_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/redis_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/redis_resource/requirements.txt", "icon": "si:redis", "x-dagster-provides": [ "redis_resource" ], "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/redis.md", "last_validated": "2026-05-14" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:redis" ] }, { "id": "redis_stream_observation_sensor", "name": "Redis Stream Observation Sensor", "category": "observation", "description": "RedisStreamObservationSensorComponent", "version": "1.0.0", "author": "Dagster Community", "path": "observations/redis_stream_observation_sensor", "tags": [ "observation", "redis", "stream", "sensor" ], "dependencies": { "pip": [ "redis>=4.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/redis_stream_observation_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/redis_stream_observation_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/redis_stream_observation_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/redis_stream_observation_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/redis_stream_observation_sensor/requirements.txt", "icon": "si:redis", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/redis.md", "last_validated": "2026-05-14" }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:redis" ] }, { "id": "redis_streams_monitor", "name": "Redis Streams Monitor", "category": "sensor", "description": "Component for monitoring a Redis Stream for new entries.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/redis_streams_monitor", "tags": [ "sensor", "redis", "streams", "monitor" ], "dependencies": { "pip": [ "redis>=4.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/redis_streams_monitor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/redis_streams_monitor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/redis_streams_monitor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/redis_streams_monitor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/redis_streams_monitor/requirements.txt", "icon": "si:redis", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/redis.md", "last_validated": "2026-05-14" }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:redis" ] }, { "id": "redis_streams_to_database_asset", "name": "Redis Streams to Database", "category": "ingestion", "description": "Read entries from a Redis Stream and write them to a database table.", "path": "assets/ingestion/redis_streams_to_database_asset", "tags": [ "ingestion", "redis", "streams", "database", "asset" ], "icon": "si:redis", "type": "dagster_component_templates.RedisStreamsToDatabaseAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/redis_streams_to_database_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/redis_streams_to_database_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/redis_streams_to_database_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/redis_streams_to_database_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/redis_streams_to_database_asset/requirements.txt", "component_type": "dagster_component_templates.RedisStreamsToDatabaseAssetComponent", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_redis.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 consumes from message broker, writes rows to DB.", "outputs": "None (sink-like \u2014 persists to configured DB).", "side_effects": "Requires Redis Streams broker + database_connection.", "anti_uses": "For DataFrame return use a dedicated Redis Streams_reader (if available). For file ingest use file_ingestion.", "requires_resources": [ "redis_resource", "database_connection" ], "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "redis", "pandas", "sqlalchemy" ] }, "produces": [ "asset" ], "consumes": [ "resource:redis" ] }, { "id": "redis_writer", "name": "Redis Writer", "category": "sink", "description": "Write a DataFrame to Redis as hashes, strings, or list values with optional TTL support", "path": "assets/sinks/redis_writer", "tags": [ "sink", "redis", "cache", "key-value" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/redis_writer/schema.json", "component_type": "dagster_component_templates.redis_writer", "icon": "si:redis", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/redis_writer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/redis_writer/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/redis_writer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/redis_writer/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_eventhubs.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "Any DataFrame to write.", "outputs": "None (sink \u2014 writes keys/values to Redis).", "side_effects": "Writes per config (STRING / HASH / SET / SORTED_SET / STREAM).", "anti_uses": "For general key-value with schema use a SQL DB. For pub/sub use redis_streams_to_database_asset upstream.", "requires_resources": [ "redis_resource" ], "input_type": "pd.DataFrame", "output_type": null }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "redis" ] }, "produces": [ "asset" ], "consumes": [ "resource:redis" ] }, { "id": "redshift_io_manager", "name": "Redshift IO Manager", "category": "io_manager", "description": "Register a Redshift IO manager so assets are automatically stored in and loaded from Amazon Redshift", "version": "0.1.0", "author": "Dagster Labs", "path": "io_managers/redshift_io_manager", "tags": [ "io_manager", "redshift", "aws", "warehouse" ], "dependencies": { "pip": [ "psycopg2-binary>=2.9.0", "sqlalchemy>=2.0.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/redshift_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/redshift_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/redshift_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/redshift_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/redshift_io_manager/requirements.txt", "icon": "si:amazonredshift", "x-dagster-provides": [ "io_manager" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "AWS", "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:redshift" ] }, { "id": "redshift_resource", "name": "Amazon Redshift Resource", "category": "resource", "description": "Register a dagster-aws RedshiftClientResource for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/redshift_resource", "tags": [ "resource", "aws", "redshift" ], "dependencies": { "pip": [ "dagster-aws" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/redshift_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/redshift_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/redshift_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/redshift_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/redshift_resource/requirements.txt", "icon": "si:amazonredshift", "x-dagster-provides": [ "redshift_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "AWS", "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:redshift" ] }, { "id": "regex_parser", "name": "Regex Parser", "category": "transformation", "description": "Use regular expressions to extract, match, or replace text in a column.", "path": "assets/transforms/regex_parser", "tags": [ "transformation", "regex", "parser" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/regex_parser/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/regex_parser/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/regex_parser/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/regex_parser/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/regex_parser/requirements.txt", "icon": "Shuffle", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/arxiv_pdf.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with a string column + a regex pattern with named groups.", "outputs": "DataFrame + N new columns (one per named group).", "side_effects": "Adds columns. Non-matching rows get NaN in extracted columns.", "anti_uses": "For structured JSON use json_flatten/json_path_extractor. For delimited splits use text_to_columns.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "reranker", "name": "Reranker", "category": "ai", "description": "Component for reranking search results to improve relevance.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/reranker", "tags": [ "ai", "reranker" ], "dependencies": { "pip": [ "cohere>=4.0.0", "sentence-transformers>=2.2.0", "rank-bm25>=0.2.2", "pandas>=1.5.0", "numpy>=1.24.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/reranker/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/reranker/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/reranker/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/reranker/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/reranker/requirements.txt", "icon": "Sparkles", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/vector_rag.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame" } }, { "id": "rest_api_fetcher", "name": "REST API Fetcher", "category": "ingestion", "description": "Component for fetching data from REST APIs.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/rest_api_fetcher", "tags": [ "ingestion", "rest", "api", "fetcher" ], "dependencies": { "pip": [ "requests>=2.28.0", "pandas>=2.0.0", "pyarrow>=10.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/rest_api_fetcher/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/rest_api_fetcher/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/rest_api_fetcher/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/rest_api_fetcher/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/rest_api_fetcher/requirements.txt", "icon": "ArrowUpFromLine", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/books_scraper.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "None (root source) \u2014 hits a JSON REST API endpoint.", "outputs": "DataFrame constructed from the JSON response. `output_format` defaults to 'dataframe' \u2014 keep it that way for any downstream transform. For JSONs with an array under a nested key (e.g. {'data': {'results': [...]}}), set json_path='data.results' to extract the array.", "side_effects": "None on local data. Makes an HTTP call per materialize. output_format defaults to 'dataframe' so downstream transforms work directly.", "anti_uses": "NOT for CSV/parquet/xlsx files at a URL (use file_ingestion). For JSON responses shaped {'results': [...]} or {'data': {'items': [...]}} \u2014 you MUST set json_path (e.g. json_path='results' or json_path='data.items') so the wrapped array becomes the DataFrame. Without json_path the whole response object becomes 1 row of columns \u2014 usually not what you want. For paginated APIs configure pagination_type.", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "resume_extractor", "name": "Resume Extractor", "category": "ai", "description": "Extract structured profile data from resumes and CVs using an LLM.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/resume_extractor", "tags": [ "ai", "extraction", "resume", "hr" ], "dependencies": { "pip": [ "dagster", "pandas>=1.5.0", "litellm>=1.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/resume_extractor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/resume_extractor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/resume_extractor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/resume_extractor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/resume_extractor/requirements.txt", "icon": "User", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/document_extractors.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "revenue_attribution", "name": "Revenue Attribution", "category": "analytics", "description": "Component for attributing revenue to marketing campaigns.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/revenue_attribution", "tags": [ "analytics", "revenue", "attribution" ], "dependencies": { "pip": [ "pandas>=1.5.0", "numpy>=1.24.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/revenue_attribution/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/revenue_attribution/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/revenue_attribution/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/revenue_attribution/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/revenue_attribution/requirements.txt", "icon": "BarChart2", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/revenue_attribution.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with revenue events + attribution touchpoints.", "outputs": "DataFrame with revenue attributed per channel/campaign.", "side_effects": "Same as multi_touch_attribution but for revenue instead of count-based conversion." }, "produces": [ "asset", "asset_check" ] }, { "id": "reverse_geocoder", "name": "Reverse Geocoder", "category": "analytics", "description": "Reverse geocode lat/lng coordinates to addresses in a DataFrame.", "path": "assets/analytics/reverse_geocoder", "tags": [ "analytics", "reverse", "geocoder" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/reverse_geocoder/schema.json", "component_type": "dagster_component_templates.ReverseGeocoderComponent", "icon": "BarChart2", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/reverse_geocoder/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/reverse_geocoder/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/reverse_geocoder/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/reverse_geocoder/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with lat/lon columns.", "outputs": "DataFrame + address string / components columns.", "side_effects": "Requires an external geocoding API.", "requires_pip": [ "geopy" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "geopy" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "rfm_segmentation", "name": "RFM Segmentation", "category": "analytics", "description": "Component for RFM (Recency, Frequency, Monetary) customer segmentation.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/rfm_segmentation", "tags": [ "analytics", "rfm", "segmentation" ], "dependencies": { "pip": [ "pandas>=1.5.0", "numpy>=1.24.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/rfm_segmentation/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/rfm_segmentation/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/rfm_segmentation/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/rfm_segmentation/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/rfm_segmentation/requirements.txt", "icon": "si:segment", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/kitchen_sink.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with customer_id, recency, frequency, monetary columns (or transaction data to derive them).", "outputs": "DataFrame + `rfm_segment` column (traditional RFM 3x3x3 buckets).", "side_effects": "Adds column. Pure pandas \u2014 no ML." }, "produces": [ "asset", "asset_check" ], "consumes": [ "resource:segment" ] }, { "id": "rivery_job_sensor", "name": "Rivery Job Sensor", "category": "sensor", "description": "Trigger a Dagster job when a Rivery river run completes.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/rivery_job_sensor", "tags": [ "sensor", "rivery", "job" ], "dependencies": { "pip": [ "requests>=2.28.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/rivery_job_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/rivery_job_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/rivery_job_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/rivery_job_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/rivery_job_sensor/requirements.txt", "icon": "Radar", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "sensor" ], "agent_hints": {} }, { "id": "rivery_run_asset", "name": "Rivery Run Asset", "category": "infrastructure", "description": "Resource for connecting to the Rivery REST API.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/infrastructure/rivery_run_asset", "tags": [ "infrastructure", "rivery", "run", "asset" ], "dependencies": { "pip": [ "requests>=2.28.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/rivery_run_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/rivery_run_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/rivery_run_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/rivery_run_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/rivery_run_asset/requirements.txt", "icon": "Server", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "router", "name": "RouterComponent", "category": "transformation", "description": "Multi-output conditional split \u2014 emit each output asset with rows matching its predicate. Equivalent to ADF Conditional Split / Informatica Router.", "version": "1.0.0", "author": "Dagster Community", "path": "transforms/router", "tags": [ "router", "conditional-split", "branch" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/router/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/router/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/router/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/router/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/router/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/router.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "One DataFrame via upstream_asset_key.", "outputs": "MULTIPLE DataFrame assets \u2014 one per entry in `routes` (asset_name), plus optional `default_asset_name` catch-all. Each output DataFrame has the same columns as input, containing only rows matching its condition.", "side_effects": "Emits N assets from ONE component config. Downstream sinks (dataframe_to_csv) each reference one route's asset_name as their upstream_asset_key.", "anti_uses": "Config shape: upstream_asset_key, routes=[{asset_name: , condition: }, ...], default_asset_name: , exclusive: true|false. DO NOT set a top-level `asset_name` on router \u2014 asset names live inside each route entry AND in default_asset_name. Router is @multi_asset \u2014 one config emits N assets. Not for column-value filtering (use filter). Not for train/test split (use train_test_splitter)." }, "produces": [ "asset" ] }, { "id": "rss_feed_sensor", "name": "RssFeedSensor", "category": "sensor", "description": "Trigger a run when an RSS / Atom feed publishes a new entry.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/rss_feed_sensor", "tags": [ "sensor", "rss", "atom", "feed" ], "dependencies": { "pip": [ "feedparser" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/rss_feed_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/rss_feed_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/rss_feed_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/rss_feed_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/rss_feed_sensor/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/rss_sensor.md", "last_validated": "2026-05-06" }, "produces": [ "sensor" ], "agent_hints": {} }, { "id": "running_total", "name": "Running Total", "category": "transformation", "description": "Calculate a running/cumulative total on a column.", "path": "assets/transforms/running_total", "tags": [ "transformation", "running", "total" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/running_total/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/running_total/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/running_total/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/running_total/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/running_total/requirements.txt", "icon": "Shuffle", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/retail_analytics.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame sorted by an order column.", "outputs": "DataFrame + a NEW running-total column (per group if group_by set).", "side_effects": "Adds column. Order-sensitive.", "anti_uses": "For non-cumulative aggregations use summarize.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "s3_cleanup_job", "name": "S3CleanupJobComponent", "category": "jobs", "description": "Delete S3 objects older than N days under a prefix \u2014 cost control + compliance retention.", "version": "1.0.0", "author": "Dagster Community", "path": "jobs/s3_cleanup_job", "tags": [ "job", "aws", "s3", "cleanup", "retention" ], "dependencies": { "pip": [ "boto3" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/s3_cleanup_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/s3_cleanup_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/s3_cleanup_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/s3_cleanup_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/s3_cleanup_job/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "AWS", "produces": [ "job", "schedule" ], "agent_hints": {} }, { "id": "s3_csv_io_manager", "name": "S3CsvIOManager", "category": "io_manager", "description": "Store DataFrames as CSV files on Amazon S3 (or any S3-compatible endpoint).", "version": "1.0.0", "author": "Dagster Community", "path": "io_managers/s3_csv_io_manager", "tags": [ "io_manager", "s3", "csv", "aws" ], "dependencies": { "pip": [ "pandas", "boto3" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/s3_csv_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/s3_csv_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/s3_csv_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/s3_csv_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/s3_csv_io_manager/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "AWS", "produces": [ "resource" ], "agent_hints": {} }, { "id": "s3_monitor", "name": "S3 Monitor", "category": "sensor", "description": "Component for monitoring an S3 bucket prefix for new objects.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/s3_monitor", "tags": [ "sensor", "monitor" ], "dependencies": { "pip": [ "boto3>=1.26.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/s3_monitor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/s3_monitor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/s3_monitor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/s3_monitor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/s3_monitor/requirements.txt", "icon": "Radar", "validation": { "level": "live", "last_validated": "2026-05-19", "evidence": "s3_pipeline.md" }, "vendor": "AWS", "produces": [ "sensor" ], "agent_hints": {} }, { "id": "s3_observation_sensor", "name": "S3 Observation Sensor", "category": "observation", "description": "S3ObservationSensorComponent", "version": "1.0.0", "author": "Dagster Community", "path": "observations/s3_observation_sensor", "tags": [ "observation", "sensor" ], "dependencies": { "pip": [ "boto3>=1.20.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/s3_observation_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/s3_observation_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/s3_observation_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/s3_observation_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/s3_observation_sensor/requirements.txt", "icon": "Eye", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "AWS", "produces": [ "sensor" ], "agent_hints": {} }, { "id": "s3_parquet_io_manager", "name": "S3 Parquet IO Manager", "category": "io_manager", "description": "Register an IO manager that stores assets as Parquet files on Amazon S3", "version": "0.1.0", "author": "Dagster Labs", "path": "io_managers/s3_parquet_io_manager", "tags": [ "io_manager", "s3", "aws", "parquet", "object-storage" ], "dependencies": { "pip": [ "s3fs>=2023.1.0", "pandas>=1.5.0", "pyarrow>=12.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/s3_parquet_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/s3_parquet_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/s3_parquet_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/s3_parquet_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/s3_parquet_io_manager/requirements.txt", "icon": "si:amazons3", "x-dagster-provides": [ "io_manager" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "AWS", "produces": [ "resource" ], "agent_hints": {} }, { "id": "s3_to_database_asset", "name": "S3 to Database", "category": "ingestion", "description": "Component for loading files from S3 into a database table.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/s3_to_database_asset", "tags": [ "ingestion", "database", "asset" ], "dependencies": { "pip": [ "boto3>=1.26.0", "pandas>=2.0.0", "sqlalchemy>=2.0.0", "pyarrow>=10.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/s3_to_database_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/s3_to_database_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/s3_to_database_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/s3_to_database_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/s3_to_database_asset/requirements.txt", "icon": "si:amazons3", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "AWS", "agent_hints": { "inputs": "None (root ingestion) \u2014 reads S3 objects, writes to DB.", "outputs": "None (sink-like).", "side_effects": "Requires aws_credentials + database_connection.", "anti_uses": "For DataFrame return use file_ingestion with s3:// URL. For GCS use gcs_to_database_asset.", "requires_resources": [ "aws_credentials", "database_connection" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "salesforce_event_log_ingestion", "name": "SalesforceEventLogIngestionComponent", "category": "ingestion", "description": "Pull Salesforce EventLogFile records (login, API access, report exports) via SOQL.", "version": "1.0.0", "author": "Dagster Community", "path": "ingestion/salesforce_event_log_ingestion", "tags": [ "salesforce", "siem", "audit-log", "event-monitoring", "security" ], "dependencies": { "pip": [ "pandas", "simple-salesforce", "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/salesforce_event_log_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/salesforce_event_log_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/salesforce_event_log_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/salesforce_event_log_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/salesforce_event_log_ingestion/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 hits vendor's REST API.", "outputs": "DataFrame with columns from Salesforce Event Log login events, API calls, apex traces.", "side_effects": "Read-only. Requires Salesforce Event Log API credentials. Rate-limited per Salesforce Event Log's tier.", "anti_uses": "For generic REST APIs use rest_api_fetcher. For writing back to Salesforce Event Log use its dedicated writer (if available).", "requires_resources": [ "salesforce_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:salesforce" ] }, { "id": "salesforce_ingestion", "name": "Salesforce Ingestion", "category": "ingestion", "description": "Component for ingesting Salesforce CRM data using dlt.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/salesforce_ingestion", "tags": [ "ingestion", "salesforce" ], "dependencies": { "pip": [ "dlt[salesforce]>=0.4.0", "pandas>=1.5.0", "simple-salesforce>=1.12.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/salesforce_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/salesforce_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/salesforce_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/salesforce_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/salesforce_ingestion/requirements.txt", "icon": "si:salesforce", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/pii_redaction.md", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 reads Salesforce objects via SOQL.", "outputs": "DataFrame with columns from the SObject fields.", "side_effects": "Requires salesforce_resource (OAuth or username/password). API-call rate-limited.", "requires_resources": [ "salesforce_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:salesforce" ] }, { "id": "salesforce_resource", "name": "Salesforce Resource", "category": "resource", "description": "Register a dagster-salesforce SalesforceResource for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/salesforce_resource", "tags": [ "resource", "salesforce", "crm" ], "dependencies": { "pip": [ "dagster-salesforce" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/salesforce_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/salesforce_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/salesforce_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/salesforce_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/salesforce_resource/requirements.txt", "icon": "si:salesforce", "x-dagster-provides": [ "salesforce_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:salesforce" ] }, { "id": "sample", "name": "Sample", "category": "transformation", "description": "Sample rows from a DataFrame by count or fraction.", "path": "assets/transforms/sample", "tags": [ "transformation", "sample" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/sample/schema.json", "component_type": "dagster_component_templates.SampleComponent", "icon": "Shuffle", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/sample/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/sample/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/sample/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/sample/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/transformations.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "Any DataFrame.", "outputs": "DataFrame with random N rows (or fraction).", "side_effects": "Reduces row count. Not deterministic unless random_state set.", "anti_uses": "For stratified samples use create_samples. For train/test split use train_test_splitter.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "sap_cpi_observation_sensor", "name": "SAP CPI Observation Sensor", "category": "observation", "description": "Poll SAP Integration Suite (CPI) Message Processing Logs and emit AssetObservations per iFlow run. Cloud middleware observability without owning the iFlow in Dagster.", "path": "sensors/sap_cpi_observation_sensor", "tags": [ "observation", "sensor", "sap", "cpi", "integration-suite", "btp", "iflow" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sap_cpi_observation_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sap_cpi_observation_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sap_cpi_observation_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sap_cpi_observation_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sap_cpi_observation_sensor/requirements.txt", "icon": "Eye", "validation": { "level": "code", "last_validated": "2026-05-13" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "requests" ] }, "produces": [ "sensor" ], "agent_hints": {} }, { "id": "sap_event_mesh_sensor", "name": "SAP Event Mesh Sensor", "category": "sensor", "description": "Poll an SAP Event Mesh queue and trigger Dagster runs per event (job or dynamic-partition mode). REST polling against Event Mesh on BTP, OAuth client_credentials via XSUAA.", "path": "sensors/sap_event_mesh_sensor", "tags": [ "sensor", "sap", "event-mesh", "event-driven", "btp", "amqp", "s4hana" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sap_event_mesh_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sap_event_mesh_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sap_event_mesh_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sap_event_mesh_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sap_event_mesh_sensor/requirements.txt", "icon": "Activity", "validation": { "level": "code", "last_validated": "2026-05-13" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "requests" ] }, "produces": [ "sensor" ], "agent_hints": {} }, { "id": "sap_hana_ingestion", "name": "SAP HANA Ingestion", "category": "ingestion", "description": "Query SAP HANA (Cloud or on-premise) and return the result as a Dagster asset (pandas DataFrame).", "path": "assets/ingestion/sap_hana_ingestion", "tags": [ "ingestion", "sap", "hana", "sql" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sap_hana_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sap_hana_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sap_hana_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sap_hana_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sap_hana_ingestion/requirements.txt", "icon": "Database", "validation": { "level": "code", "last_validated": "2026-05-13" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 reads from SAP HANA via SQL.", "outputs": "DataFrame with columns from query.", "side_effects": "Requires sap_hana_resource + hdbcli driver.", "requires_pip": [ "hdbcli" ], "requires_resources": [ "sap_hana_resource" ], "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "sqlalchemy", "sqlalchemy-hana", "hdbcli", "pandas" ] }, "produces": [ "asset" ] }, { "id": "sap_hana_resource", "name": "SAP HANA Resource", "category": "resource", "description": "SAP HANA database resource \u2014 provides a SQLAlchemy URL helper. Works with HANA Cloud, on-prem, and Azure HANA (preview).", "path": "resources/sap_hana_resource", "tags": [ "resource", "sap", "hana", "database", "azure" ], "type": "dagster_component_templates.SapHanaResourceComponent", "component_type": "dagster_component_templates.SapHanaResourceComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/sap_hana_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/sap_hana_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/sap_hana_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/sap_hana_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/sap_hana_resource/requirements.txt", "icon": "Database", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/sap_hana.md", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "sqlalchemy", "sqlalchemy-hana", "hdbcli" ] }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "sap_rfc_ingestion", "name": "SAP RFC Ingestion", "category": "ingestion", "description": "Execute an SAP RFC / BAPI / RFC_READ_TABLE and materialize the result as a pandas DataFrame. Classic on-prem R/3 / ECC / S/4HANA integration path. Pairs with sap_rfc_resource.", "path": "assets/ingestion/sap_rfc_ingestion", "tags": [ "ingestion", "sap", "rfc", "bapi", "idoc", "ecc", "r3", "s4hana" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sap_rfc_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sap_rfc_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sap_rfc_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sap_rfc_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sap_rfc_ingestion/requirements.txt", "icon": "Database", "validation": { "level": "code", "last_validated": "2026-05-13" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 calls SAP RFC functions.", "outputs": "DataFrame with columns from RFC return structures.", "side_effects": "Requires SAP NW RFC SDK + pyrfc.", "anti_uses": "For SAP HANA SQL use sap_hana_ingestion. For OData use odata_ingestion.", "requires_pip": [ "pyrfc" ], "requires_resources": [ "sap_rfc_resource" ], "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "pyrfc", "pandas" ] }, "produces": [ "asset" ] }, { "id": "sap_rfc_resource", "name": "SAP RFC Resource", "category": "resource", "description": "Register a connection to an SAP system over RFC (Remote Function Call) \u2014 for on-prem R/3 / ECC / S/4HANA installs without OData. Uses pyrfc + SAP NW RFC SDK.", "path": "resources/sap_rfc_resource", "tags": [ "resource", "sap", "rfc", "bapi", "idoc", "ecc", "r3", "s4hana" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/sap_rfc_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/sap_rfc_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/sap_rfc_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/sap_rfc_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/sap_rfc_resource/requirements.txt", "icon": "Server", "validation": { "level": "code", "last_validated": "2026-05-13" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "pyrfc" ] }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "scd_type_1", "name": "ScdType1Component", "category": "transformation", "description": "Slowly Changing Dimension Type 1 \u2014 overwrite in place. Merge incoming rows into a target on a business key, replacing changed attributes.", "version": "1.0.0", "author": "Dagster Community", "path": "transforms/scd_type_1", "tags": [ "scd", "dimension", "merge", "warehouse" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/scd_type_1/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/scd_type_1/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/scd_type_1/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/scd_type_1/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/scd_type_1/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/transformations.md", "last_validated": "2026-05-14" }, "agent_hints": { "inputs": "TWO DataFrames \u2014 current + incoming \u2014 via upstream keys.", "outputs": "DataFrame representing merged current state (overwrites on match).", "side_effects": "Overwrites existing rows for keys present in incoming; adds new keys.", "anti_uses": "For history-tracking use scd_type_2. Not for simple joins (use dataframe_join)." }, "produces": [ "asset" ] }, { "id": "scd_type_2", "name": "ScdType2Component", "category": "transformation", "description": "Slowly Changing Dimension Type 2 \u2014 keep history. Detect changed rows, expire prior versions, insert new versions with effective_from / effective_to / is_current.", "version": "1.0.0", "author": "Dagster Community", "path": "transforms/scd_type_2", "tags": [ "scd", "dimension", "merge", "history", "warehouse" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/scd_type_2/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/scd_type_2/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/scd_type_2/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/scd_type_2/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/scd_type_2/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/scd_type_2.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "TWO DataFrames \u2014 current + incoming.", "outputs": "DataFrame with history: existing rows may get end_date + is_current=false; new rows added with is_current=true.", "side_effects": "Adds effective_from / effective_to / is_current columns. Row count grows over time.", "anti_uses": "For overwrite-on-change use scd_type_1. Requires configured business/natural keys." }, "produces": [ "asset" ] }, { "id": "schema_fit", "name": "Schema Fit", "category": "ai", "description": "Component for LLM-driven schema mapping and transformation.", "path": "assets/ai/schema_fit", "tags": [ "ai", "schema", "fit" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/schema_fit/schema.json", "component_type": "dagster_component_templates.SchemaFitComponent", "icon": "Sparkles", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/schema_fit/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/schema_fit/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/schema_fit/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/schema_fit/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/local_nlp.md", "last_validated": "2026-05-08" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "litellm" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame" } }, { "id": "schema_validator", "name": "Schema Validator", "category": "transformation", "description": "Validate each row against a JSON Schema; drop, tag, or raise on validation failures.", "path": "assets/transforms/schema_validator", "tags": [ "transformation", "documents", "validation", "json-schema", "data-quality" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/schema_validator/schema.json", "component_type": "dagster_component_templates.SchemaValidatorComponent", "icon": "CheckCircle", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/schema_validator/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/schema_validator/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/schema_validator/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/schema_validator/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/transformations.md", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "Any DataFrame + expected schema config.", "outputs": "Same DataFrame (or raises on validation failure per config).", "side_effects": "Read-only \u2014 pass-through if valid; raises otherwise. Adds no columns.", "anti_uses": "For type coercion use type_coercer. For null checks use imputation.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "jsonschema" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "scientific_paper_extractor", "name": "Scientific Paper Extractor", "category": "ai", "description": "Extract metadata and findings from scientific papers and research articles using an LLM.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/scientific_paper_extractor", "tags": [ "ai", "extraction", "research", "academic" ], "dependencies": { "pip": [ "dagster", "pandas>=1.5.0", "litellm>=1.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/scientific_paper_extractor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/scientific_paper_extractor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/scientific_paper_extractor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/scientific_paper_extractor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/scientific_paper_extractor/requirements.txt", "icon": "BookOpen", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/document_extractors.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "select_columns", "name": "Select Columns", "category": "transformation", "description": "Select, drop, and rename columns in a DataFrame.", "path": "assets/transforms/select_columns", "tags": [ "transformation", "select", "columns" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/select_columns/schema.json", "component_type": "dagster_component_templates.SelectColumnsComponent", "icon": "Shuffle", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/select_columns/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/select_columns/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/select_columns/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/select_columns/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/earthquakes.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "Any DataFrame.", "outputs": "DataFrame containing ONLY the columns listed in `columns` (in that order). Rows unchanged.", "side_effects": "REMOVES all columns not in the list. Downstream steps referencing dropped columns will KeyError.", "chains_with": "Useful mid-pipeline to trim before one_hot_encoding (avoid encoding label columns) or to reshape output.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "select_records", "name": "SelectRecords", "category": "transformation", "description": "Select rows by index range, head/tail, or specific row indices.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/select_records", "tags": [ "transformation", "preparation", "rows" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/select_records/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/select_records/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/select_records/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/select_records/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/select_records/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/transformations.md", "last_validated": "2026-05-08" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "sentiment_analyzer", "name": "Sentiment Analyzer", "category": "ai", "description": "Component for analyzing sentiment in text.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/sentiment_analyzer", "tags": [ "ai", "sentiment", "analyzer" ], "dependencies": { "pip": [ "pandas>=1.5.0", "transformers>=4.30.0", "torch>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/sentiment_analyzer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/sentiment_analyzer/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/sentiment_analyzer/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/sentiment_analyzer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/sentiment_analyzer/requirements.txt", "icon": "Sparkles", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/ai_with_llm.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame" } }, { "id": "sentry_alert_job", "name": "Sentry Alert Job", "category": "jobs", "description": "Fire a Sentry event as a scheduled (or on-demand) job \u2014 no asset materialized. Matches the shape of http_webhook_job / observability_heartbeat_job. Configurable message ({now} substitution), level, environment/release, Sentry tags/extras/fingerprint. Common uses: nightly heartbeat that on-call watches for gaps; release-notification events; scheduled 'job completed' signals into the Sentry inbox.", "path": "jobs/sentry_alert_job", "tags": [ "jobs", "sentry", "observability", "alert", "heartbeat" ], "icon": "AlertCircle", "type": "dagster_community_components.SentryAlertJobComponent", "component_type": "dagster_community_components.SentryAlertJobComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/sentry_alert_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/sentry_alert_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/sentry_alert_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/sentry_alert_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/sentry_alert_job/requirements.txt", "dependencies": { "pip": [ "dagster", "sentry-sdk" ] }, "agent_hints": { "inputs": "None \u2014 schedule-triggered or on-demand.", "outputs": "None (op job \u2014 sends one Sentry event per run, no asset materialized).", "side_effects": "Requires SENTRY_DSN env var + sentry-sdk installed. Message supports {now} placeholder for UTC ISO timestamp.", "anti_uses": "For per-row events from a DataFrame use dataframe_to_sentry (asset sink). For reading issues use sentry_issues_ingestion. For generic webhook use http_webhook_job. For pinging any observability endpoint use observability_heartbeat_job.", "requires_pip": [ "sentry_sdk" ], "requires_resources": [ "sentry_dsn" ] }, "version": "1.0.0", "author": "Dagster Community", "validation": { "level": "code", "last_validated": "2026-07-08" }, "produces": [ "job", "schedule" ], "consumes": [ "resource:sentry" ] }, { "name": "Sentry Issues Ingestion", "category": "ingestion", "description": "Pull issues from a Sentry project via the /api/0/projects REST API. Uses Link-header cursor pagination. Returns a pandas DataFrame with flattened issue fields (id, shortId, title, level, status, count, userCount, firstSeen, lastSeen, project.*, metadata.*).", "path": "assets/ingestion/sentry_issues_ingestion", "tags": [ "ingestion", "sentry", "observability", "errors", "saas" ], "icon": "AlertCircle", "type": "dagster_community_components.SentryIssuesIngestionComponent", "component_type": "dagster_community_components.SentryIssuesIngestionComponent", "dependencies": { "pip": [ "pandas", "requests" ] }, "agent_hints": { "inputs": "None (root ingestion) \u2014 reads issues from a Sentry project.", "outputs": "DataFrame with issue fields (id, shortId, title, level, status, count, userCount, firstSeen, lastSeen, permalink).", "side_effects": "Read-only. Requires SENTRY_AUTH_TOKEN with `project:read` scope. Cursor-paginated via Link header. Query language matches Sentry's search bar (e.g. 'is:unresolved', 'level:error age:-24h').", "anti_uses": "For sending events TO Sentry use dataframe_to_sentry. For querying events (individual occurrences) not issues (aggregated), use a different endpoint. Not for real-time \u2014 poll on a schedule.", "requires_resources": [ "sentry_auth_token" ], "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "validation": { "level": "code", "last_validated": "2026-07-08" }, "id": "sentry_issues_ingestion", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sentry_issues_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sentry_issues_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sentry_issues_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sentry_issues_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sentry_issues_ingestion/requirements.txt", "produces": [ "asset" ], "consumes": [ "resource:sentry" ] }, { "id": "sentry_monitor_checkin_job", "name": "Sentry Monitor Check-in Job", "category": "jobs", "description": "Register a Dagster scheduled job as a Sentry Cron Monitor. On each run, fires an in_progress check-in at start and an ok check-in at end. If Sentry doesn't see the expected check-in within the schedule window + checkin_margin, it alerts on-call. Optional monitor_config auto-creates the monitor on first check-in. Matches the pattern of http_webhook_job / observability_heartbeat_job. Complements sentry_alert_job (which fires arbitrary events on schedule).", "path": "jobs/sentry_monitor_checkin_job", "tags": [ "jobs", "sentry", "observability", "cron-monitoring", "heartbeat" ], "icon": "Clock", "type": "dagster_community_components.SentryMonitorCheckinJobComponent", "component_type": "dagster_community_components.SentryMonitorCheckinJobComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/sentry_monitor_checkin_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/sentry_monitor_checkin_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/sentry_monitor_checkin_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/sentry_monitor_checkin_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/sentry_monitor_checkin_job/requirements.txt", "dependencies": { "pip": [ "dagster", "sentry-sdk>=1.30.0" ] }, "agent_hints": { "inputs": "None \u2014 schedule-triggered or on-demand.", "outputs": "None (op job \u2014 sends one Sentry cron check-in per run: in_progress at start, ok at end).", "side_effects": "Requires SENTRY_DSN env var + sentry-sdk>=1.30. If monitor_config is set, auto-creates/updates the monitor on first check-in. Default fail_on_error=False so a Sentry outage doesn't break the scheduler.", "anti_uses": "For an ARBITRARY Sentry event (message) on schedule use sentry_alert_job \u2014 different concept (alerts inbox, not cron monitor). For generic webhook pings use http_webhook_job. For per-row events from a DataFrame use dataframe_to_sentry.", "requires_pip": [ "sentry_sdk" ], "requires_resources": [ "sentry_dsn" ] }, "version": "1.0.0", "author": "Dagster Community", "validation": { "level": "code", "last_validated": "2026-07-08" }, "produces": [ "job", "schedule" ], "consumes": [ "resource:sentry" ] }, { "id": "servicebus_monitor", "name": "Azure Service Bus Monitor", "category": "sensor", "description": "Component for polling an Azure Service Bus queue or topic subscription.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/servicebus_monitor", "tags": [ "sensor", "servicebus", "monitor" ], "dependencies": { "pip": [ "azure-servicebus>=7.11.0", "azure-identity>=1.12.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/servicebus_monitor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/servicebus_monitor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/servicebus_monitor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/servicebus_monitor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/servicebus_monitor/requirements.txt", "icon": "Radar", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_servicebus.md", "last_validated": "2026-05-11" }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:servicebus" ] }, { "id": "servicebus_observation_sensor", "name": "Service Bus Observation Sensor", "category": "observation", "description": "ServiceBusObservationSensorComponent", "version": "1.0.0", "author": "Dagster Community", "path": "observations/servicebus_observation_sensor", "tags": [ "observation", "servicebus", "sensor" ], "dependencies": { "pip": [ "azure-servicebus>=7.0.0", "azure-identity>=1.10.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/servicebus_observation_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/servicebus_observation_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/servicebus_observation_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/servicebus_observation_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/servicebus_observation_sensor/requirements.txt", "icon": "Eye", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:servicebus" ] }, { "id": "servicebus_to_database_asset", "name": "Service Bus to Database", "category": "ingestion", "description": "Drain messages from an Azure Service Bus queue/subscription and write to a database.", "path": "assets/ingestion/servicebus_to_database_asset", "tags": [ "ingestion", "servicebus", "database", "asset" ], "icon": "ArrowUpFromLine", "type": "dagster_component_templates.ServiceBusToDatabaseAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/servicebus_to_database_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/servicebus_to_database_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/servicebus_to_database_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/servicebus_to_database_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/servicebus_to_database_asset/requirements.txt", "component_type": "dagster_component_templates.ServiceBusToDatabaseAssetComponent", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/azure_servicebus.md", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 consumes from message broker, writes rows to DB.", "outputs": "None (sink-like \u2014 persists to configured DB).", "side_effects": "Requires Azure Service Bus broker + database_connection.", "anti_uses": "For DataFrame return use a dedicated Azure Service Bus_reader (if available). For file ingest use file_ingestion.", "requires_resources": [ "azure_credentials", "database_connection" ], "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "azure-servicebus", "pandas", "sqlalchemy" ] }, "produces": [ "asset" ], "consumes": [ "resource:servicebus" ] }, { "id": "servicenow_ingestion", "name": "ServiceNow Ingestion", "component_type": "dagster_component_templates.ServiceNowIngestionComponent", "path": "assets/ingestion/servicenow_ingestion", "category": "ingestion", "icon": "Server", "description": "Read records from any ServiceNow table (incident / change_request / sc_request / sys_user / cmdb_ci / custom tables) into a DataFrame asset. ServiceNow Table API with pagination, encoded-query filtering, field selection, and basic-auth or bearer-token (OAuth) auth.", "tags": [ "ingestion", "servicenow", "itsm", "incidents", "change-management", "rest-api" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/servicenow_ingestion/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/servicenow_ingestion/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/servicenow_ingestion/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/servicenow_ingestion/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/servicenow_ingestion/schema.json", "dependencies": { "pip": [ "dagster", "pandas>=1.5.0", "requests>=2.28.0" ] }, "validation": { "level": "code" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 hits vendor's REST API.", "outputs": "DataFrame with columns from ServiceNow incidents, changes, CMDB items.", "side_effects": "Read-only. Requires ServiceNow API credentials. Rate-limited per ServiceNow's tier.", "anti_uses": "For generic REST APIs use rest_api_fetcher. For writing back to ServiceNow use its dedicated writer (if available).", "requires_resources": [ "servicenow_resource" ], "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "produces": [ "asset", "asset_check" ], "consumes": [ "resource:servicenow" ] }, { "id": "servicenow_resource", "name": "ServiceNow Resource", "component_type": "dagster_component_templates.ServiceNowResourceComponent", "path": "resources/servicenow_resource", "category": "resource", "icon": "Server", "description": "Shared ServiceNow Table API connection (instance subdomain + auth). Supports basic auth for dev instances and bearer-token OAuth for production. Pairs with servicenow_ingestion (read) and servicenow_sensor (event-driven trigger).", "tags": [ "resource", "servicenow", "itsm", "rest-api", "oauth" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/servicenow_resource/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/servicenow_resource/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/servicenow_resource/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/servicenow_resource/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/servicenow_resource/schema.json", "dependencies": { "pip": [ "requests>=2.28.0" ] }, "validation": { "level": "code" }, "version": "1.0.0", "author": "Dagster Community", "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:servicenow" ] }, { "id": "servicenow_sensor", "name": "ServiceNow Sensor", "category": "sensor", "description": "Trigger a job when ServiceNow records match a target state.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/servicenow_sensor", "tags": [ "sensor", "servicenow" ], "dependencies": { "pip": [ "requests>=2.28.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/servicenow_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/servicenow_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/servicenow_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/servicenow_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/servicenow_sensor/requirements.txt", "icon": "Radar", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:servicenow" ] }, { "id": "sftp_monitor", "name": "SFTP Monitor", "category": "sensor", "description": "Monitor an SFTP directory for new files.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/sftp_monitor", "tags": [ "sensor", "sftp", "monitor" ], "dependencies": { "pip": [ "paramiko>=3.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sftp_monitor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sftp_monitor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sftp_monitor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sftp_monitor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sftp_monitor/requirements.txt", "icon": "Radar", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:sftp" ] }, { "id": "sftp_path_observation_sensor", "name": "SFTP Path Observation Sensor", "category": "observation", "description": "Emit health observations for an external SFTP path.", "version": "1.0.0", "author": "Dagster Community", "path": "observations/sftp_path_observation_sensor", "tags": [ "observation", "sftp", "path", "sensor" ], "dependencies": { "pip": [ "paramiko>=3.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/sftp_path_observation_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/sftp_path_observation_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/sftp_path_observation_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/sftp_path_observation_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/sftp_path_observation_sensor/requirements.txt", "icon": "Eye", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:sftp" ] }, { "id": "sftp_resource", "name": "SFTP Resource", "category": "resource", "description": "Register an SFTP resource for reading and writing files over SSH", "version": "1.0.0", "author": "Dagster Community", "path": "resources/sftp_resource", "tags": [ "resource", "sftp", "ssh", "file-transfer" ], "dependencies": { "pip": [ "paramiko" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/sftp_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/sftp_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/sftp_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/sftp_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/sftp_resource/requirements.txt", "icon": "si:openssh", "x-dagster-provides": [ "sftp_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:sftp" ] }, { "id": "sftp_to_database_asset", "name": "SFTP to Database", "category": "ingestion", "description": "Download a file from SFTP and write it to a database table.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/sftp_to_database_asset", "tags": [ "ingestion", "sftp", "database", "asset" ], "dependencies": { "pip": [ "paramiko>=3.0.0", "pandas>=1.3.0", "sqlalchemy>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sftp_to_database_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sftp_to_database_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sftp_to_database_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sftp_to_database_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sftp_to_database_asset/requirements.txt", "icon": "ArrowUpFromLine", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 reads files via SFTP, writes to DB.", "outputs": "None (sink-like).", "side_effects": "Requires sftp_resource + database_connection.", "requires_resources": [ "sftp_resource", "database_connection" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:sftp" ] }, { "id": "sharepoint_monitor", "name": "SharePoint Monitor", "category": "sensor", "description": "Monitor a SharePoint document library for new or modified files.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/sharepoint_monitor", "tags": [ "sensor", "sharepoint", "monitor" ], "dependencies": { "pip": [ "requests>=2.28.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sharepoint_monitor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sharepoint_monitor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sharepoint_monitor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sharepoint_monitor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sharepoint_monitor/requirements.txt", "icon": "Radar", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Microsoft", "produces": [ "sensor" ], "agent_hints": {} }, { "id": "shell_command_asset", "name": "ShellCommandAsset", "category": "infrastructure", "description": "Run a shell command as a Dagster asset via dagster-shell.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/infrastructure/shell_command_asset", "tags": [ "infrastructure", "shell", "exec", "official" ], "dependencies": { "pip": [ "dagster", "dagster-shell" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/shell_command_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/shell_command_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/shell_command_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/shell_command_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/shell_command_asset/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/shell_command_job.md", "last_validated": "2026-05-06" }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "shell_command_job", "name": "ShellCommandJobComponent", "category": "jobs", "description": "Run a shell command as a Dagster job (no asset materialized) \u2014 for cleanup, maintenance, ad-hoc tasks.", "version": "1.0.0", "author": "Dagster Community", "path": "jobs/shell_command_job", "tags": [ "job", "shell", "task", "maintenance" ], "dependencies": { "pip": [] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/shell_command_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/shell_command_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/shell_command_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/shell_command_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/shell_command_job/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/shell_command_job.md", "last_validated": "2026-05-06" }, "produces": [ "job", "schedule" ], "agent_hints": {} }, { "id": "shipping_label_extractor", "name": "Shipping Label Extractor", "category": "ai", "description": "Extract logistics data from shipping labels and packing slips using an LLM.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/shipping_label_extractor", "tags": [ "ai", "extraction", "logistics", "shipping" ], "dependencies": { "pip": [ "dagster", "pandas>=1.5.0", "litellm>=1.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/shipping_label_extractor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/shipping_label_extractor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/shipping_label_extractor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/shipping_label_extractor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/shipping_label_extractor/requirements.txt", "icon": "Package", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/document_extractors.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "shopify_ingestion", "name": "Shopify Ingestion", "category": "ingestion", "description": "Component for ingesting Shopify e-commerce data using dlt.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/shopify_ingestion", "tags": [ "ingestion", "shopify" ], "dependencies": { "pip": [ "dlt[shopify]>=0.4.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/shopify_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/shopify_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/shopify_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/shopify_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/shopify_ingestion/requirements.txt", "icon": "si:shopify", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 hits vendor's REST API.", "outputs": "DataFrame with columns from Shopify orders, products, customers.", "side_effects": "Read-only. Requires Shopify API credentials. Rate-limited per Shopify's tier.", "anti_uses": "For generic REST APIs use rest_api_fetcher. For writing back to Shopify use its dedicated writer (if available).", "requires_resources": [ "shopify_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "shopify_resource", "name": "Shopify Resource", "category": "resource", "description": "Register a ShopifyResource wrapping the ShopifyAPI client for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/shopify_resource", "tags": [ "resource", "shopify", "ecommerce", "retail" ], "dependencies": { "pip": [ "ShopifyAPI" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/shopify_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/shopify_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/shopify_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/shopify_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/shopify_resource/requirements.txt", "icon": "si:shopify", "x-dagster-provides": [ "shopify_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "siem_audit_export_job", "name": "SiemAuditExportJobComponent", "category": "jobs", "description": "Compound op job: pull audit logs from a SaaS source, normalize to OCSF/ECS, ship to a SIEM \u2014 all in one YAML config.", "version": "1.0.0", "author": "Dagster Community", "path": "jobs/siem_audit_export_job", "tags": [ "compound", "job", "siem", "audit-log", "security", "ocsf" ], "dependencies": { "pip": [ "pandas", "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/siem_audit_export_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/siem_audit_export_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/siem_audit_export_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/siem_audit_export_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/siem_audit_export_job/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "job", "schedule" ], "agent_hints": {} }, { "id": "siem_event_normalizer", "name": "SiemEventNormalizerComponent", "category": "transformation", "description": "Normalize heterogeneous audit-log events to a common schema (OCSF or ECS) before shipping to a SIEM.", "version": "1.0.0", "author": "Dagster Community", "path": "transforms/siem_event_normalizer", "tags": [ "security", "siem", "ocsf", "ecs", "normalizer", "schema" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/siem_event_normalizer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/siem_event_normalizer/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/siem_event_normalizer/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/siem_event_normalizer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/siem_event_normalizer/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/transformations.md", "last_validated": "2026-05-08" }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "sifflet_check", "name": "Sifflet Check", "category": "check", "description": "Trigger a Sifflet monitor run and surface results as a Dagster asset check.", "version": "1.0.0", "author": "Dagster Community", "path": "asset_checks/sifflet_check", "tags": [ "check", "sifflet" ], "dependencies": { "pip": [ "requests>=2.28.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/sifflet_check/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/sifflet_check/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/sifflet_check/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/sifflet_check/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/sifflet_check/requirements.txt", "icon": "CheckCircle", "validation": { "level": "live", "last_validated": "2026-05-11" }, "produces": [ "asset_check" ], "agent_hints": {}, "consumes": [ "resource:sifflet" ] }, { "id": "sigma_assets", "name": "SigmaAssets", "category": "integration", "description": "Import Sigma workbooks + datasets as Dagster external assets via dagster-sigma.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/sigma_assets", "tags": [ "integration", "sigma", "bi", "official" ], "dependencies": { "pip": [ "dagster", "dagster-sigma" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/sigma_assets/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/sigma_assets/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/sigma_assets/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/sigma_assets/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/sigma_assets/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "simulation_sampling", "name": "Simulation Sampling", "category": "analytics", "description": "Component for Monte Carlo simulation sampling.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/simulation_sampling", "tags": [ "analytics", "simulation", "sampling" ], "dependencies": { "pip": [ "pandas>=1.5.0", "numpy>=1.23.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/simulation_sampling/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/simulation_sampling/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/simulation_sampling/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/simulation_sampling/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/simulation_sampling/requirements.txt", "icon": "BarChart2", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame + a distribution / sampling config.", "outputs": "DataFrame with N sampled rows per configuration.", "side_effects": "Row count = N \u00d7 configurations.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ] }, { "id": "slack_audit_log_ingestion", "name": "SlackAuditLogIngestionComponent", "category": "ingestion", "description": "Pull Slack Enterprise Grid audit log via /audit/v1/logs (requires audit_logs:read scope).", "version": "1.0.0", "author": "Dagster Community", "path": "ingestion/slack_audit_log_ingestion", "tags": [ "slack", "siem", "audit-log", "security" ], "dependencies": { "pip": [ "pandas", "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/slack_audit_log_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/slack_audit_log_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/slack_audit_log_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/slack_audit_log_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/slack_audit_log_ingestion/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 reads audit log entries via API.", "outputs": "DataFrame of Slack enterprise audit audit events (actor, action, resource, timestamp, metadata).", "side_effects": "Read-only. Requires Slack enterprise audit admin credentials. Chunked / paginated per vendor's API.", "anti_uses": "For SIEM ingestion of the SAME logs into a SIEM, chain into audit_logs_to_ sinks downstream.", "requires_resources": [ "slack_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:slack" ] }, { "id": "slack_ingestion", "name": "Slack Ingestion", "category": "ingestion", "description": "Component for ingesting Slack workspace data using dlt.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/slack_ingestion", "tags": [ "ingestion", "slack" ], "dependencies": { "pip": [ "dlt[slack]>=0.4.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/slack_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/slack_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/slack_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/slack_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/slack_ingestion/requirements.txt", "icon": "si:slack", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 reads Slack messages / users / channels via API.", "outputs": "DataFrame with columns per entity.", "side_effects": "Requires slack_api_token. Rate-limited.", "requires_resources": [ "slack_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:slack" ] }, { "id": "slack_notification", "name": "Slack Notification Sensor", "category": "sensor", "description": "Monitor Slack channels for new messages and trigger jobs.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/slack_notification", "tags": [ "sensor", "slack", "notification" ], "dependencies": { "pip": [] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/slack_notification/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/slack_notification/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/slack_notification/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/slack_notification/example.yaml", "icon": "si:slack", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/slack_notification/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/adaptive_triage.md", "last_validated": "2026-05-11" }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:slack" ] }, { "id": "slack_notification_job", "name": "SlackNotificationJobComponent", "category": "jobs", "description": "Send a Slack message as a scheduled job \u2014 daily summaries, weekly reports, ad-hoc alerts.", "version": "1.0.0", "author": "Dagster Community", "path": "jobs/slack_notification_job", "tags": [ "job", "slack", "notification", "alert" ], "dependencies": { "pip": [ "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/slack_notification_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/slack_notification_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/slack_notification_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/slack_notification_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/slack_notification_job/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "job", "schedule" ], "agent_hints": {}, "consumes": [ "resource:slack" ] }, { "id": "slack_resource", "name": "Slack Resource", "category": "resource", "description": "Register a dagster-slack SlackResource for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/slack_resource", "tags": [ "resource", "slack", "notification" ], "dependencies": { "pip": [ "dagster-slack" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/slack_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/slack_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/slack_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/slack_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/slack_resource/requirements.txt", "icon": "si:slack", "x-dagster-provides": [ "slack_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:slack" ] }, { "id": "sling_replication_asset", "name": "SlingReplicationAsset", "category": "integration", "description": "Run a Sling YAML replication as Dagster assets via dagster-sling.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/sling_replication_asset", "tags": [ "integration", "sling", "elt", "official" ], "dependencies": { "pip": [ "dagster", "dagster-sling", "pyyaml" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/sling_replication_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/sling_replication_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/sling_replication_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/sling_replication_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/sling_replication_asset/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "multi_asset", "resource" ], "agent_hints": {} }, { "id": "smooth", "name": "Smooth", "category": "analytics", "description": "Simplify geometries via Douglas-Peucker, reducing point count while preserving overall shape.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/smooth", "tags": [ "analytics", "spatial", "geopandas", "simplify", "smooth" ], "dependencies": { "pip": [ "pandas", "geopandas", "shapely" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/smooth/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/smooth/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/smooth/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/smooth/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/smooth/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/store_coverage.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with a numeric column to smooth, sorted.", "outputs": "DataFrame + smoothed column (rolling mean / EWMA / Savitzky-Golay).", "side_effects": "Adds column. Order-sensitive.", "anti_uses": "For running totals use running_total. For general window ops use window_calculation.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "smtp_resource", "name": "SMTP Resource", "category": "resource", "description": "Register an SMTP resource for sending emails from other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/smtp_resource", "tags": [ "resource", "smtp", "email" ], "dependencies": { "pip": [] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/smtp_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/smtp_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/smtp_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/smtp_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/smtp_resource/requirements.txt", "icon": "si:gmail", "x-dagster-provides": [ "smtp_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:smtp" ] }, { "id": "smtp_send_asset", "name": "SMTP Send Asset", "category": "sink", "description": "Send emails via SMTP \u2014 one per upstream row (data-driven) or one summary per run. Templates, attachments, STARTTLS/SSL.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/sinks/smtp_send_asset", "tags": [ "smtp-send-asset", "sink", "email" ], "dependencies": { "pip": [ "dagster", "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/smtp_send_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/smtp_send_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/smtp_send_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/smtp_send_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sinks/smtp_send_asset/requirements.txt", "validation": { "level": "live", "last_validated": "2026-05-19", "evidence": "email_roundtrip.md" }, "agent_hints": { "inputs": "DataFrame with recipient columns (email, name) + optional subject/body/attachments.", "outputs": "None (sink \u2014 sends emails via SMTP).", "side_effects": "Sends N emails (one per row). Requires smtp_resource. Rate-limited.", "anti_uses": "For transactional emails at scale use a dedicated service (SendGrid / SES). Not for storing data (use dataframe_to_csv/etc.).", "requires_resources": [ "smtp_resource" ], "input_type": "pd.DataFrame", "output_type": null }, "produces": [ "asset" ], "consumes": [ "resource:smtp" ] }, { "id": "snowflake_access_history_ingestion", "name": "SnowflakeAccessHistoryIngestionComponent", "category": "ingestion", "description": "Pull Snowflake access history (every query, every column accessed) from the ACCOUNT_USAGE views.", "version": "1.0.0", "author": "Dagster Community", "path": "ingestion/snowflake_access_history_ingestion", "tags": [ "snowflake", "siem", "audit-log", "data-access", "security" ], "dependencies": { "pip": [ "pandas", "snowflake-connector-python" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/snowflake_access_history_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/snowflake_access_history_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/snowflake_access_history_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/snowflake_access_history_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/ingestion/snowflake_access_history_ingestion/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Snowflake", "agent_hints": { "inputs": "None (root ingestion) \u2014 reads snowflake.account_usage.access_history / query_history / login_history.", "outputs": "DataFrame of Snowflake access + query events.", "side_effects": "Read-only. Requires snowflake_resource with ACCOUNT_USAGE role.", "requires_resources": [ "snowflake_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:snowflake" ] }, { "id": "snowflake_alert", "name": "Snowflake Alert", "category": "integration", "description": "Define a Snowflake ALERT (scheduled conditional action) as Dagster YAML. Materialization runs CREATE OR REPLACE ALERT and RESUMEs it.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/snowflake_alert", "tags": [ "snowflake", "alert", "ddl", "monitoring", "data-quality" ], "dependencies": { "pip": [ "snowflake-connector-python", "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_alert/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_alert/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_alert/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_alert/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_alert/requirements.txt", "icon": "si:snowflake", "validation": { "level": "code", "last_validated": "2026-05-20" }, "vendor": "Snowflake", "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:snowflake" ] }, { "id": "snowflake_cortex_agent", "name": "Snowflake Cortex Agent", "category": "ai", "description": "Single-shot LLM agent backed by Snowflake Cortex COMPLETE REST API + MCP tools. Same tool-calling loop as openai_agent / anthropic_agent / gemini_agent, routed through Snowflake's inference endpoint. Full Dagster pattern.", "path": "assets/ai/snowflake_cortex_agent", "tags": [ "ai", "llm", "agent", "mcp", "snowflake", "cortex", "agentic" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/snowflake_cortex_agent/schema.json", "component_type": "dagster_component_templates.SnowflakeCortexAgentComponent", "icon": "si:snowflake", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/snowflake_cortex_agent/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/snowflake_cortex_agent/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/snowflake_cortex_agent/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/snowflake_cortex_agent/requirements.txt", "validation": { "level": "code", "last_validated": "2026-06-04" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "requests", "mcp", "PyJWT", "cryptography" ] }, "produces": [ "asset" ], "agent_hints": { "output_type": "pd.DataFrame" }, "consumes": [ "resource:snowflake" ] }, { "id": "snowflake_cortex_asset", "name": "Snowflake Cortex Asset", "category": "ai", "description": "Run a Snowflake Cortex LLM function on a table and write results to a new table.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/snowflake_cortex_asset", "tags": [ "ai", "snowflake", "cortex", "asset" ], "dependencies": { "pip": [ "snowflake-connector-python", "snowflake-sqlalchemy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/snowflake_cortex_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/snowflake_cortex_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/snowflake_cortex_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/snowflake_cortex_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/snowflake_cortex_asset/requirements.txt", "icon": "si:snowflake", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Snowflake", "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:snowflake" ] }, { "id": "snowflake_cortex_search", "name": "Snowflake Cortex Search", "category": "ai", "description": "Query a Snowflake Cortex Search Service (managed RAG / vector search) and materialize the results as a Dagster asset.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/snowflake_cortex_search", "tags": [ "snowflake", "cortex", "ai", "rag", "vector-search", "llm" ], "dependencies": { "pip": [ "snowflake-connector-python", "dagster" ] }, "icon": "si:snowflake", "validation": { "level": "code", "last_validated": "2026-05-20" }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_cortex_search/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_cortex_search/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_cortex_search/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_cortex_search/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_cortex_search/requirements.txt", "vendor": "Snowflake", "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:snowflake" ] }, { "id": "snowflake_dynamic_table", "name": "Snowflake Dynamic Table", "category": "integration", "description": "Define a Snowflake DYNAMIC TABLE as Dagster YAML. Materialization runs CREATE OR REPLACE DYNAMIC TABLE.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/snowflake_dynamic_table", "tags": [ "snowflake", "dynamic-table", "ddl", "materialized", "refresh" ], "dependencies": { "pip": [ "snowflake-connector-python", "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_dynamic_table/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_dynamic_table/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_dynamic_table/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_dynamic_table/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_dynamic_table/requirements.txt", "icon": "si:snowflake", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/snowflake_single_entity.md", "last_validated": "2026-05-20" }, "vendor": "Snowflake", "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:snowflake" ] }, { "id": "snowflake_dynamic_table_refresh_asset", "name": "Snowflake Dynamic Table Refresh Asset", "category": "data_warehouse", "description": "Materialize by ALTER DYNAMIC TABLE ... REFRESH on a named Snowflake dynamic table.", "path": "assets/data-warehouse/snowflake_dynamic_table_refresh_asset", "tags": [ "data-warehouse", "snowflake", "dynamic-table", "refresh" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/data-warehouse/snowflake_dynamic_table_refresh_asset/schema.json", "component_type": "dagster_community_components.SnowflakeDynamicTableRefreshAssetComponent", "icon": "si:snowflake", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/data-warehouse/snowflake_dynamic_table_refresh_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/data-warehouse/snowflake_dynamic_table_refresh_asset/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/data-warehouse/snowflake_dynamic_table_refresh_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/data-warehouse/snowflake_dynamic_table_refresh_asset/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/snowflake_single_entity.md", "last_validated": "2026-05-22" }, "dependencies": { "pip": [ "snowflake-connector-python>=3.0.0" ] }, "vendor": "Snowflake", "version": "1.0.0", "author": "Dagster Community", "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:snowflake" ] }, { "id": "snowflake_iceberg_table", "name": "Snowflake Iceberg Table", "category": "integration", "description": "Define a Snowflake ICEBERG TABLE as Dagster YAML. Materialization runs CREATE OR REPLACE ICEBERG TABLE against Snowflake-managed or external catalog.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/snowflake_iceberg_table", "tags": [ "snowflake", "iceberg", "lakehouse", "open-table-format", "ddl" ], "dependencies": { "pip": [ "snowflake-connector-python", "dagster" ] }, "icon": "si:snowflake", "validation": { "level": "code", "last_validated": "2026-05-20" }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_iceberg_table/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_iceberg_table/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_iceberg_table/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_iceberg_table/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_iceberg_table/requirements.txt", "vendor": "Snowflake", "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:iceberg", "resource:snowflake" ] }, { "id": "snowflake_io_manager", "name": "Snowflake IO Manager", "category": "io_manager", "description": "Register a SnowflakePandasIOManager so assets are automatically stored in and loaded from Snowflake", "version": "0.1.0", "author": "Dagster Labs", "path": "io_managers/snowflake_io_manager", "tags": [ "io_manager", "snowflake", "warehouse", "cloud" ], "dependencies": { "pip": [ "dagster-snowflake-pandas>=0.22.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/snowflake_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/snowflake_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/snowflake_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/snowflake_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/snowflake_io_manager/requirements.txt", "icon": "si:snowflake", "x-dagster-provides": [ "io_manager" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Snowflake", "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:snowflake" ] }, { "id": "snowflake_materialized_view", "name": "Snowflake Materialized View", "category": "integration", "description": "Define a Snowflake MATERIALIZED VIEW as Dagster YAML. Materialization runs CREATE OR REPLACE MATERIALIZED VIEW.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/snowflake_materialized_view", "tags": [ "snowflake", "materialized-view", "ddl", "enterprise", "aggregation" ], "dependencies": { "pip": [ "snowflake-connector-python", "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_materialized_view/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_materialized_view/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_materialized_view/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_materialized_view/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_materialized_view/requirements.txt", "icon": "si:snowflake", "validation": { "level": "code", "last_validated": "2026-05-20" }, "vendor": "Snowflake", "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:snowflake" ] }, { "id": "snowflake_openflow_status_sensor", "name": "Snowflake OpenFlow Status Sensor", "category": "sensor", "description": "Poll SNOWFLAKE.TELEMETRY.EVENTS for openflow_metric activity; emit AssetMaterialization when a named flow's activity advances.", "path": "sensors/snowflake_openflow_status_sensor", "tags": [ "sensor", "snowflake", "openflow", "telemetry" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/snowflake_openflow_status_sensor/schema.json", "component_type": "dagster_community_components.SnowflakeOpenflowStatusSensorComponent", "icon": "si:snowflake", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/snowflake_openflow_status_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/snowflake_openflow_status_sensor/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/snowflake_openflow_status_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/snowflake_openflow_status_sensor/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/snowflake_single_entity.md", "last_validated": "2026-05-22" }, "dependencies": { "pip": [ "snowflake-connector-python>=3.0.0" ] }, "vendor": "Snowflake", "version": "1.0.0", "author": "Dagster Community", "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:snowflake" ] }, { "id": "snowflake_polars_io_manager", "name": "SnowflakePolarsIOManager", "category": "io_manager", "description": "Wrap dagster-snowflake-polars so polars.DataFrame assets persist to Snowflake.", "version": "1.0.0", "author": "Dagster Community", "path": "io_managers/snowflake_polars_io_manager", "tags": [ "io_manager", "snowflake", "polars", "warehouse", "official" ], "dependencies": { "pip": [ "dagster", "dagster-snowflake-polars", "polars" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/snowflake_polars_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/snowflake_polars_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/snowflake_polars_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/snowflake_polars_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/snowflake_polars_io_manager/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Snowflake", "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:snowflake" ] }, { "id": "snowflake_pyspark_io_manager", "name": "SnowflakePySparkIOManager", "category": "io_manager", "description": "Wrap dagster-snowflake-pyspark so PySpark DataFrames persist to Snowflake.", "version": "1.0.0", "author": "Dagster Community", "path": "io_managers/snowflake_pyspark_io_manager", "tags": [ "io_manager", "snowflake", "pyspark", "warehouse", "official" ], "dependencies": { "pip": [ "dagster", "dagster-snowflake-pyspark", "pyspark" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/snowflake_pyspark_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/snowflake_pyspark_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/snowflake_pyspark_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/snowflake_pyspark_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/snowflake_pyspark_io_manager/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Snowflake", "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:snowflake" ] }, { "id": "snowflake_resource", "name": "Snowflake Resource", "category": "resource", "description": "Register a dagster-snowflake SnowflakeResource for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/snowflake_resource", "tags": [ "resource", "snowflake", "warehouse" ], "dependencies": { "pip": [ "dagster-snowflake" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/snowflake_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/snowflake_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/snowflake_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/snowflake_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/snowflake_resource/requirements.txt", "icon": "si:snowflake", "x-dagster-provides": [ "snowflake_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Snowflake", "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:snowflake" ] }, { "id": "snowflake_snowpipe", "name": "Snowflake Snowpipe", "category": "integration", "description": "Define a Snowflake PIPE (Snowpipe) as Dagster YAML. Materialization runs CREATE OR REPLACE PIPE and (optionally) ALTER PIPE \u2026 REFRESH.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/snowflake_snowpipe", "tags": [ "snowflake", "snowpipe", "pipe", "ddl", "ingestion", "copy-into" ], "dependencies": { "pip": [ "snowflake-connector-python", "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_snowpipe/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_snowpipe/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_snowpipe/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_snowpipe/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_snowpipe/requirements.txt", "icon": "si:snowflake", "validation": { "level": "code", "last_validated": "2026-05-20" }, "vendor": "Snowflake", "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:snowflake" ] }, { "id": "snowflake_snowpipe_load_sensor", "name": "Snowflake Snowpipe Load Sensor", "category": "sensor", "description": "Fires a Dagster RunRequest each time a Snowflake PIPE ingests new files (reads COPY_HISTORY). Per-file granularity with rich metadata. Works for both AUTO_INGEST and manual PUT-COPY pipes.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/snowflake_snowpipe_load_sensor", "tags": [ "snowflake", "snowpipe", "sensor", "copy-history", "auto-ingest", "ingestion" ], "dependencies": { "pip": [ "snowflake-connector-python" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/snowflake_snowpipe_load_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/snowflake_snowpipe_load_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/snowflake_snowpipe_load_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/snowflake_snowpipe_load_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/snowflake_snowpipe_load_sensor/requirements.txt", "icon": "si:snowflake", "validation": { "level": "code", "last_validated": "2026-05-22" }, "vendor": "Snowflake", "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:snowflake" ] }, { "id": "snowflake_stored_procedure", "name": "Snowflake Stored Procedure", "category": "integration", "description": "Define a Snowflake STORED PROCEDURE (SQL / Python / JavaScript / Scala) as Dagster YAML. Optional CALL on materialize.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/snowflake_stored_procedure", "tags": [ "snowflake", "stored-procedure", "ddl", "snowpark", "python" ], "dependencies": { "pip": [ "snowflake-connector-python", "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_stored_procedure/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_stored_procedure/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_stored_procedure/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_stored_procedure/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_stored_procedure/requirements.txt", "icon": "si:snowflake", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/snowflake_single_entity.md", "last_validated": "2026-05-20" }, "vendor": "Snowflake", "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:snowflake" ] }, { "id": "snowflake_stored_procedure_call_asset", "name": "Snowflake Stored Procedure Call Asset", "category": "data_warehouse", "description": "Materialize by CALL on a named Snowflake stored procedure. Single-entity counterpart to snowflake_workspace.", "path": "assets/data-warehouse/snowflake_stored_procedure_call_asset", "tags": [ "data-warehouse", "snowflake", "stored-procedure", "call" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/data-warehouse/snowflake_stored_procedure_call_asset/schema.json", "component_type": "dagster_community_components.SnowflakeStoredProcedureCallAssetComponent", "icon": "si:snowflake", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/data-warehouse/snowflake_stored_procedure_call_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/data-warehouse/snowflake_stored_procedure_call_asset/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/data-warehouse/snowflake_stored_procedure_call_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/data-warehouse/snowflake_stored_procedure_call_asset/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/snowflake_single_entity.md", "last_validated": "2026-05-22" }, "dependencies": { "pip": [ "snowflake-connector-python>=3.0.0" ] }, "vendor": "Snowflake", "version": "1.0.0", "author": "Dagster Community", "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:snowflake" ] }, { "id": "snowflake_stream", "name": "Snowflake Stream", "category": "integration", "description": "Define a Snowflake STREAM (CDC) as Dagster YAML. Materialization runs CREATE OR REPLACE STREAM ON TABLE.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/snowflake_stream", "tags": [ "snowflake", "stream", "ddl", "cdc", "change-data-capture" ], "dependencies": { "pip": [ "snowflake-connector-python", "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_stream/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_stream/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_stream/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_stream/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_stream/requirements.txt", "icon": "si:snowflake", "validation": { "level": "code", "last_validated": "2026-05-20" }, "vendor": "Snowflake", "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:snowflake" ] }, { "id": "snowflake_table_observation_sensor", "name": "Snowflake Table Observation Sensor", "category": "observation", "description": "Emit health observations for an external Snowflake table.", "version": "1.0.0", "author": "Dagster Community", "path": "observations/snowflake_table_observation_sensor", "tags": [ "observation", "snowflake", "table", "sensor" ], "dependencies": { "pip": [ "snowflake-connector-python>=3.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/snowflake_table_observation_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/snowflake_table_observation_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/snowflake_table_observation_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/snowflake_table_observation_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/snowflake_table_observation_sensor/requirements.txt", "icon": "si:snowflake", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "Snowflake", "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:snowflake" ] }, { "id": "snowflake_task", "name": "Snowflake Task", "category": "integration", "description": "Define a Snowflake TASK as Dagster YAML. Materialization runs CREATE OR REPLACE TASK and optionally RESUMEs + EXECUTEs it.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/snowflake_task", "tags": [ "snowflake", "task", "ddl", "orchestration", "scheduling" ], "dependencies": { "pip": [ "snowflake-connector-python", "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_task/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_task/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_task/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_task/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_task/requirements.txt", "icon": "si:snowflake", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/snowflake_single_entity.md", "last_validated": "2026-05-20" }, "vendor": "Snowflake", "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:snowflake" ] }, { "id": "snowflake_task_completion_sensor", "name": "Snowflake Task Completion Sensor", "category": "sensor", "description": "Poll Snowflake TASK_HISTORY for a named task and emit AssetMaterialization on each new SUCCESS.", "path": "sensors/snowflake_task_completion_sensor", "tags": [ "sensor", "snowflake", "task", "completion" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/snowflake_task_completion_sensor/schema.json", "component_type": "dagster_community_components.SnowflakeTaskCompletionSensorComponent", "icon": "si:snowflake", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/snowflake_task_completion_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/snowflake_task_completion_sensor/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/snowflake_task_completion_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/snowflake_task_completion_sensor/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/snowflake_single_entity.md", "last_validated": "2026-05-22" }, "dependencies": { "pip": [ "snowflake-connector-python>=3.0.0" ] }, "vendor": "Snowflake", "version": "1.0.0", "author": "Dagster Community", "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:snowflake" ] }, { "id": "snowflake_task_execute_asset", "name": "Snowflake Task Execute Asset", "category": "data_warehouse", "description": "Materialize by EXECUTE TASK on a named Snowflake task. Single-entity counterpart to snowflake_workspace.", "path": "assets/data-warehouse/snowflake_task_execute_asset", "tags": [ "data-warehouse", "snowflake", "task", "execute" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/data-warehouse/snowflake_task_execute_asset/schema.json", "component_type": "dagster_community_components.SnowflakeTaskExecuteAssetComponent", "icon": "si:snowflake", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/data-warehouse/snowflake_task_execute_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/data-warehouse/snowflake_task_execute_asset/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/data-warehouse/snowflake_task_execute_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/data-warehouse/snowflake_task_execute_asset/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/snowflake_single_entity.md", "last_validated": "2026-05-22" }, "dependencies": { "pip": [ "snowflake-connector-python>=3.0.0" ] }, "vendor": "Snowflake", "version": "1.0.0", "author": "Dagster Community", "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:snowflake" ] }, { "id": "snowflake_time_travel_asset", "name": "Snowflake Time Travel Asset", "category": "integration", "description": "Query a Snowflake table AT a past point in time (Time Travel via OFFSET / TIMESTAMP / BEFORE STATEMENT) and materialize the result as a Dagster asset.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/snowflake_time_travel_asset", "tags": [ "snowflake", "time-travel", "audit", "rollback", "historical-query" ], "dependencies": { "pip": [ "snowflake-connector-python", "dagster" ] }, "icon": "si:snowflake", "validation": { "level": "code", "last_validated": "2026-05-20" }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_time_travel_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_time_travel_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_time_travel_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_time_travel_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_time_travel_asset/requirements.txt", "vendor": "Snowflake", "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:snowflake" ] }, { "id": "snowflake_workspace", "name": "Snowflake Workspace", "category": "integration", "description": "Component for importing Snowflake workspace entities as Dagster assets.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/snowflake_workspace", "tags": [ "integration", "snowflake", "workspace" ], "dependencies": { "pip": [ "snowflake-connector-python", "dagster" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_workspace/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_workspace/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_workspace/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_workspace/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/snowflake_workspace/requirements.txt", "icon": "si:snowflake", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/snowflake_workspace.md", "last_validated": "2026-05-11" }, "vendor": "Snowflake", "produces": [ "multi_asset", "sensor" ], "agent_hints": {}, "consumes": [ "resource:snowflake" ] }, { "id": "snowpark_pipeline", "name": "SnowparkPipeline", "category": "transformation", "description": "Multi-step Snowpark DataFrame chain \u2014 full compute pushdown to Snowflake.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/snowpark_pipeline", "tags": [ "transformation", "snowflake", "snowpark", "pushdown", "pipeline" ], "dependencies": { "pip": [ "dagster", "snowflake-snowpark-python" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/snowpark_pipeline/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/snowpark_pipeline/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/snowpark_pipeline/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/snowpark_pipeline/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/snowpark_pipeline/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/snowpark_pipeline.md", "last_validated": "2026-05-19" }, "vendor": "Snowflake", "agent_hints": { "inputs": "Upstream Snowflake tables.", "outputs": "Snowflake result (materialized as Snowflake asset).", "side_effects": "All work happens in Snowflake compute \u2014 pandas is not involved.", "anti_uses": "For non-Snowflake use polars_pipeline or pyspark_pipeline.", "requires_resources": [ "snowflake_resource" ] }, "produces": [ "asset" ] }, { "id": "soda_check", "name": "Soda Check", "category": "check", "description": "[DEPRECATED \u2014 use dagster-soda] Run a Soda scan \u2014 one Dagster asset check per SodaCL check (community).", "version": "1.0.0", "author": "Dagster Community", "path": "asset_checks/soda_check", "tags": [ "check", "soda" ], "dependencies": { "pip": [ "soda-core>=3.0.0", "PyYAML>=5.1" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/soda_check/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/soda_check/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/soda_check/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/soda_check/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/asset_checks/soda_check/requirements.txt", "icon": "CheckCircle", "validation": { "level": "live", "last_validated": "2026-05-11" }, "produces": [ "asset_check" ], "agent_hints": {}, "consumes": [ "resource:soda" ] }, { "id": "sort", "name": "Sort", "category": "transformation", "description": "Sort a DataFrame by one or more columns.", "path": "assets/transforms/sort", "tags": [ "transformation", "sort" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/sort/schema.json", "component_type": "dagster_component_templates.SortComponent", "icon": "Shuffle", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/sort/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/sort/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/sort/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/sort/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/cities_distance.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "Any DataFrame.", "outputs": "Same DataFrame; rows sorted per config.", "side_effects": "Row order changes; no data loss.", "anti_uses": "For top-N use top_n_per_group. Same as `arrange` \u2014 pick one.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "spanner_query_asset", "name": "Spanner Query Asset", "category": "source", "description": "Run a Spanner SQL query and return rows as a DataFrame.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/source/spanner_query_asset", "tags": [ "spanner-query-asset", "source" ], "dependencies": { "pip": [ "google-cloud-spanner", "google-auth", "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/spanner_query_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/spanner_query_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/spanner_query_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/spanner_query_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/spanner_query_asset/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root source) \u2014 runs SQL against Google Cloud Spanner.", "outputs": "DataFrame from query.", "requires_resources": [ "gcp_credentials" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:spanner" ] }, { "id": "spatial_cluster", "name": "Spatial Cluster", "category": "analytics", "description": "Cluster geographic points using DBSCAN or K-means.", "path": "assets/analytics/spatial_cluster", "tags": [ "analytics", "spatial", "cluster" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/spatial_cluster/schema.json", "component_type": "dagster_component_templates.SpatialClusterComponent", "icon": "BarChart2", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/spatial_cluster/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/spatial_cluster/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/spatial_cluster/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/spatial_cluster/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/airports_cluster.md", "last_validated": "2026-05-06" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "scikit-learn", "numpy" ] }, "agent_hints": { "inputs": "DataFrame with lat/lon or geometry columns.", "outputs": "DataFrame + `cluster_id` from DBSCAN or KMeans on spatial features.", "requires_pip": [ "shapely", "sklearn" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ] }, { "id": "spatial_info", "name": "Spatial Info", "category": "transformation", "description": "Append geometry metadata columns (area, length, centroid, bounds, geom type) to a (Geo)DataFrame. Drop-in for Alteryx's Spatial Info tool.", "path": "assets/transforms/spatial_info", "tags": [ "transformation", "alteryx" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/spatial_info/schema.json", "component_type": "dagster_component_templates.SpatialInfoComponent", "icon": "Info", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/spatial_info/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/spatial_info/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/spatial_info/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/spatial_info/requirements.txt", "validation": { "level": "code", "last_validated": "2026-06-06" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "geopandas", "shapely" ] }, "agent_hints": { "inputs": "DataFrame with a geometry column.", "outputs": "DataFrame + columns: area, length, centroid, bounds, geom_type.", "side_effects": "Adds derived columns.", "requires_pip": [ "shapely" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "spatial_join", "name": "Spatial Join", "category": "analytics", "description": "Spatially join a points DataFrame against a regions DataFrame.", "path": "assets/analytics/spatial_join", "tags": [ "analytics", "spatial", "join" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/spatial_join/schema.json", "component_type": "dagster_component_templates.SpatialJoinComponent", "icon": "BarChart2", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/spatial_join/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/spatial_join/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/spatial_join/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/spatial_join/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/store_coverage.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "TWO spatial DataFrames.", "outputs": "Joined DataFrame per spatial predicate (intersects / contains / within).", "side_effects": "Requires geopandas.", "anti_uses": "For attribute joins use dataframe_join.", "requires_pip": [ "geopandas" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "geopandas", "shapely" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "spatial_process", "name": "Spatial Process", "category": "transformation", "description": "Apply a single geometry op (centroid, boundary, convex_hull, envelope, simplify, buffer, polygon\u2194points/lines, set_precision) to a column of Shapely geometries. Drop-in for Alteryx Spatial Process tool.", "path": "assets/transforms/spatial_process", "tags": [ "transformation", "alteryx", "spatial" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/spatial_process/schema.json", "component_type": "dagster_community_components.SpatialProcessComponent", "icon": "Compass", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/spatial_process/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/spatial_process/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/spatial_process/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/spatial_process/requirements.txt", "validation": { "level": "code", "last_validated": "2026-06-06" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "shapely" ] }, "agent_hints": { "inputs": "DataFrame with a geometry column.", "outputs": "DataFrame with additional processed geometry (union/dissolve/etc.).", "requires_pip": [ "shapely", "geopandas" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "speech_to_text_asset", "name": "SpeechToTextAssetComponent", "category": "ai", "description": "Transcribe audio files via Cloud Speech-to-Text v2. Per-row recognition on a column of audio paths or gs:// URIs; supports multilingual recognition, automatic punctuation, word time offsets, speaker diarization. Specialized models include latest_short / latest_long / chirp / chirp_2 / phone_call / medical_conversation.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/speech_to_text_asset", "tags": [ "ai", "speech-to-text", "transcription", "google", "audio", "voice" ], "dependencies": { "pip": [ "dagster>=1.8.0", "pandas>=1.5.0", "google-cloud-speech>=2.20.0", "google-auth>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/speech_to_text_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/speech_to_text_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/speech_to_text_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/speech_to_text_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/speech_to_text_asset/requirements.txt", "component_type": "dagster_component_templates.SpeechToTextAssetComponent", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/speech_translate.md", "last_validated": "2026-05-08" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "spline_model", "name": "SplineModel", "category": "analytics", "description": "Fit an OLS regression with cubic-spline transformed features for smooth non-linear effects.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/spline_model", "tags": [ "analytics", "regression", "spline", "non-linear" ], "dependencies": { "pip": [ "pandas", "scikit-learn", "numpy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/spline_model/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/spline_model/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/spline_model/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/spline_model/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/spline_model/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with numeric feature column(s) + target.", "outputs": "DataFrame with fitted values (smooth spline).", "side_effects": "For non-linear univariate fits. Requires scipy or statsmodels.", "requires_pip": [ "scipy" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "sql_command_job", "name": "SqlCommandJobComponent", "category": "jobs", "description": "Execute a SQL maintenance command (VACUUM, ANALYZE, REFRESH MATERIALIZED VIEW, etc.) \u2014 no asset.", "version": "1.0.0", "author": "Dagster Community", "path": "jobs/sql_command_job", "tags": [ "job", "sql", "maintenance", "vacuum", "refresh" ], "dependencies": { "pip": [ "sqlalchemy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/sql_command_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/sql_command_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/sql_command_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/sql_command_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/sql_command_job/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/composition_primitives.md", "last_validated": "2026-05-14" }, "produces": [ "job", "schedule" ], "agent_hints": {} }, { "id": "sql_generator", "name": "SQL Generator", "category": "ai", "description": "Generate SQL queries from natural language questions using an LLM, with optional schema context.", "path": "assets/ai/sql_generator", "tags": [ "ai", "sql", "text-to-sql", "llm", "nlp" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/sql_generator/schema.json", "component_type": "dagster_component_templates.SqlGeneratorComponent", "icon": "Database", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/sql_generator/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/sql_generator/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/sql_generator/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/sql_generator/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/local_nlp.md", "last_validated": "2026-05-08" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "litellm" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "sql_monitor", "name": "SQL Monitor", "category": "sensor", "description": "Component for monitoring a SQL database table for new or updated rows.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/sql_monitor", "tags": [ "sensor", "sql", "monitor" ], "dependencies": { "pip": [ "sqlalchemy>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sql_monitor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sql_monitor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sql_monitor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sql_monitor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sql_monitor/requirements.txt", "icon": "Radar", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "sensor" ], "agent_hints": {} }, { "id": "sql_observation_sensor", "name": "SQL Observation Sensor", "category": "observation", "description": "SqlObservationSensorComponent", "version": "1.0.0", "author": "Dagster Community", "path": "observations/sql_observation_sensor", "tags": [ "observation", "sql", "sensor" ], "dependencies": { "pip": [ "sqlalchemy>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/sql_observation_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/sql_observation_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/sql_observation_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/sql_observation_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/sql_observation_sensor/requirements.txt", "icon": "Eye", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "sensor" ], "agent_hints": {} }, { "id": "sql_to_database_asset", "name": "SQL to Database", "category": "ingestion", "description": "Read from a source database and write to a destination database table.", "path": "assets/ingestion/sql_to_database_asset", "tags": [ "ingestion", "sql", "database", "asset" ], "icon": "ArrowUpFromLine", "type": "dagster_component_templates.SQLToDatabaseAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sql_to_database_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sql_to_database_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sql_to_database_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sql_to_database_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sql_to_database_asset/requirements.txt", "component_type": "dagster_component_templates.SQLToDatabaseAssetComponent", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 copies rows from a source DB to a target DB.", "outputs": "None (sink-like).", "side_effects": "Requires two database_connection resources (source + target). For recurring sync use database_replication.", "requires_resources": [ "database_connection" ], "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "pandas", "sqlalchemy" ] }, "produces": [ "asset" ] }, { "id": "sql_transform", "name": "SQL Transform", "category": "transformation", "description": "Run a SELECT on the warehouse and materialize the result as a table (CTAS pushdown).", "path": "assets/transforms/sql_transform", "tags": [ "transformation", "sql", "warehouse", "snowflake", "bigquery", "redshift", "pushdown" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/sql_transform/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/sql_transform/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/sql_transform/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/sql_transform/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/sql_transform/requirements.txt", "icon": "Shuffle", "dependencies": { "pip": [ "sqlalchemy>=1.4" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/transformations.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame(s) referenced in the SQL via `upstream_asset_key` (single) or `upstream_asset_keys` (multiple). Available in-query as table names.", "outputs": "DataFrame from SQL result (return_dataframe=true) OR writes to a target table.", "side_effects": "Depends on `return_dataframe` and target. Uses duckdb for in-memory SQL over pandas inputs.", "anti_uses": "For simple filter/summarize/join, use dedicated components (they're faster and typed). Use sql_transform when you need something SQL-specific (window functions, complex joins, CTEs).", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "produces": [ "asset" ] }, { "id": "sqs_monitor", "name": "SQS Monitor", "category": "sensor", "description": "Component for polling an AWS SQS queue for new messages.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/sqs_monitor", "tags": [ "sensor", "sqs", "monitor" ], "dependencies": { "pip": [ "boto3>=1.26.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sqs_monitor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sqs_monitor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sqs_monitor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sqs_monitor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/sqs_monitor/requirements.txt", "icon": "Radar", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "AWS", "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:sqs" ] }, { "id": "sqs_observation_sensor", "name": "SQS Observation Sensor", "category": "observation", "description": "SqsObservationSensorComponent", "version": "1.0.0", "author": "Dagster Community", "path": "observations/sqs_observation_sensor", "tags": [ "observation", "sqs", "sensor" ], "dependencies": { "pip": [ "boto3>=1.20.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/sqs_observation_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/sqs_observation_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/sqs_observation_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/sqs_observation_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/observations/sqs_observation_sensor/requirements.txt", "icon": "Eye", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "AWS", "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:sqs" ] }, { "id": "sqs_to_database_asset", "name": "SQS to Database", "category": "ingestion", "description": "Drain messages from an SQS queue and write them to a database table.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/sqs_to_database_asset", "tags": [ "ingestion", "sqs", "database", "asset" ], "dependencies": { "pip": [ "boto3>=1.26.0", "pandas>=1.3.0", "sqlalchemy>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sqs_to_database_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sqs_to_database_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sqs_to_database_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sqs_to_database_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/sqs_to_database_asset/requirements.txt", "icon": "ArrowUpFromLine", "validation": { "level": "code", "last_validated": "2026-05-11" }, "vendor": "AWS", "agent_hints": { "inputs": "None (root ingestion) \u2014 consumes from message broker, writes rows to DB.", "outputs": "None (sink-like \u2014 persists to configured DB).", "side_effects": "Requires AWS SQS broker + database_connection.", "anti_uses": "For DataFrame return use a dedicated AWS SQS_reader (if available). For file ingest use file_ingestion.", "requires_resources": [ "aws_credentials", "database_connection" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:sqs" ] }, { "id": "ssh_asset", "name": "SSH Asset", "category": "ingestion", "description": "Run shell commands on a remote host via SSH as a Dagster asset.", "path": "assets/ingestion/ssh_asset", "tags": [ "ingestion", "ssh", "asset" ], "icon": "ArrowUpFromLine", "type": "dagster_component_templates.SSHAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/ssh_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/ssh_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/ssh_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/ssh_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/ssh_asset/requirements.txt", "component_type": "dagster_component_templates.SSHAssetComponent", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root) \u2014 runs a shell command over SSH and captures stdout.", "outputs": "DataFrame with stdout / stderr / exit_code columns per invocation.", "side_effects": "Executes REMOTE commands. Requires ssh_resource. Handle with care \u2014 command must be safe.", "anti_uses": "For file transfer use sftp_to_database_asset. For safer scoped operations prefer a dedicated component.", "requires_resources": [ "ssh_resource" ] }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "paramiko" ] }, "produces": [ "asset" ] }, { "id": "starburst_resource", "name": "Starburst Resource", "category": "resource", "description": "Starburst connection resource \u2014 alias for trino_resource. Same engine, registered separately for vendor discoverability.", "path": "resources/starburst_resource", "tags": [ "resource", "starburst", "trino", "federation", "sql" ], "vendor": "Starburst", "dependencies": { "pip": [ "trino>=0.330.0" ] }, "version": "1.0.0", "author": "Dagster Community", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/starburst_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/starburst_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/starburst_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/starburst_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/starburst_resource/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-28", "evidence": "Pydantic instantiation + build_defs pass; awaiting live Docker demo for promotion" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "starrocks_resource", "name": "StarRocks Resource", "category": "resource", "description": "StarRocks connection resource \u2014 same MySQL wire protocol + Stream Load HTTP path as Doris (StarRocks is a Doris fork).", "path": "resources/starrocks_resource", "tags": [ "resource", "starrocks", "olap", "mpp" ], "vendor": "StarRocks", "dependencies": { "pip": [ "sqlalchemy>=2.0.0", "pymysql" ] }, "version": "1.0.0", "author": "Dagster Community", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/starrocks_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/starrocks_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/starrocks_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/starrocks_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/starrocks_resource/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-28", "evidence": "build_defs + Pydantic instantiation pass; awaiting customer pilot for live" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:starrocks" ] }, { "id": "step_functions_asset", "name": "AWS Step Functions Asset", "category": "infrastructure", "description": "AWS Step Functions Asset Component.", "path": "assets/infrastructure/step_functions_asset", "tags": [ "infrastructure", "step", "functions", "asset" ], "icon": "Server", "type": "dagster_component_templates.StepFunctionsAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/step_functions_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/step_functions_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/step_functions_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/step_functions_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/step_functions_asset/requirements.txt", "component_type": "dagster_component_templates.StepFunctionsAssetComponent", "validation": { "level": "code", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "boto3" ] }, "produces": [ "multi_asset" ], "stateful": true, "agent_hints": {} }, { "id": "stepwise", "name": "Stepwise", "category": "analytics", "description": "Sequential forward feature selection \u2014 pick K best features by cross-validated score.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/stepwise", "tags": [ "analytics", "feature-selection", "stepwise" ], "dependencies": { "pip": [ "pandas", "scikit-learn", "numpy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/stepwise/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/stepwise/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/stepwise/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/stepwise/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/stepwise/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with target + candidate feature columns.", "outputs": "DataFrame documenting selected features + iteration history.", "side_effects": "Iterative feature selection. Requires statsmodels / sklearn.", "anti_uses": "For regularization-based selection use gradient_boosting_model with feature_importances. Stepwise selection is disfavored in modern statistics.", "requires_pip": [ "statsmodels" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "stripe_event_sensor", "name": "StripeEventSensor", "category": "sensor", "description": "Trigger a run when Stripe emits new events (charges, subscriptions, invoices, etc).", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/stripe_event_sensor", "tags": [ "sensor", "stripe", "billing" ], "dependencies": { "pip": [ "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/stripe_event_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/stripe_event_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/stripe_event_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/stripe_event_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/stripe_event_sensor/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:stripe" ] }, { "id": "stripe_ingestion", "name": "Stripe Ingestion", "category": "ingestion", "description": "Component for ingesting Stripe payment and customer data using dlt - returns DataFrames.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/stripe_ingestion", "tags": [ "ingestion", "stripe" ], "dependencies": { "pip": [ "dlt[stripe]>=0.4.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/stripe_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/stripe_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/stripe_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/stripe_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/stripe_ingestion/requirements.txt", "icon": "si:stripe", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 reads Stripe API objects (charges, customers, subscriptions, etc.).", "outputs": "DataFrame with columns from Stripe API responses.", "side_effects": "Requires stripe_api_key. Rate-limited.", "requires_resources": [ "stripe_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:stripe" ] }, { "id": "stripe_resource", "name": "Stripe Resource", "category": "resource", "description": "Register a StripeResource wrapping the Stripe Python SDK for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/stripe_resource", "tags": [ "resource", "stripe", "payments", "billing" ], "dependencies": { "pip": [ "stripe" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/stripe_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/stripe_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/stripe_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/stripe_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/stripe_resource/requirements.txt", "icon": "si:stripe", "x-dagster-provides": [ "stripe_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:stripe" ] }, { "id": "subscription_metrics", "name": "Subscription Metrics", "category": "analytics", "description": "Component for calculating subscription and revenue metrics.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/subscription_metrics", "tags": [ "analytics", "subscription", "metrics" ], "dependencies": { "pip": [ "pandas>=1.5.0", "numpy>=1.24.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/subscription_metrics/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/subscription_metrics/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/subscription_metrics/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/subscription_metrics/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/subscription_metrics/requirements.txt", "icon": "BarChart2", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/saas_metrics.md", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "DataFrame with subscription events (subscribe/cancel/renew timestamps).", "outputs": "DataFrame with MRR / ARR / churn rate / retention curves.", "side_effects": "Reduces to summary rows / cohort table." }, "produces": [ "asset", "asset_check" ] }, { "id": "summarize", "name": "Summarize", "category": "transformation", "description": "Group and aggregate a DataFrame by one or more columns.", "path": "assets/transforms/summarize", "tags": [ "transformation", "summarize" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/summarize/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/summarize/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/summarize/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/summarize/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/summarize/requirements.txt", "icon": "Shuffle", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/adls_inbox.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with columns named by `group_by` present. Aggregation column names must exist in input.", "outputs": "DataFrame with columns: group_by keys + one column per aggregation.", "side_effects": "REDUCES rows to one per group. Column set changes: only group_by keys + aggs remain.", "anti_uses": "group_by columns MUST exist in the upstream. aggregations shape: {'': {'col': '', 'agg': 'sum|mean|count|min|max|std|median|first|last'}}. For ANY 'group by X, sum/count/mean Y' task \u2014 USE summarize, not count_records + formula. count_records only gives a grand total; formula only computes per-row values \u2014 neither does group-by aggregation. If upstream was one_hot_encoded, branch off pre-encoded upstream.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "supabase_edge_function_trigger", "name": "Supabase Edge Function Trigger", "category": "infrastructure", "description": "Materializable asset that invokes a Supabase Edge Function via POST /functions/v1/.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/infrastructure/supabase_edge_function_trigger", "tags": [ "infrastructure", "supabase", "edge-function", "trigger" ], "vendor": "Supabase", "dependencies": { "pip": [ "supabase>=2.0.0", "requests>=2.28" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/supabase_edge_function_trigger/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/supabase_edge_function_trigger/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/supabase_edge_function_trigger/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/supabase_edge_function_trigger/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/supabase_edge_function_trigger/requirements.txt", "icon": "si:supabase", "validation": { "level": "code", "last_validated": "2026-07-06" }, "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:supabase" ] }, { "id": "supabase_resource", "name": "Supabase Resource", "category": "resource", "description": "Register a SupabaseResource wrapping the supabase-py client for use by other components.", "version": "1.0.0", "author": "Dagster Community", "path": "resources/supabase_resource", "tags": [ "resource", "supabase", "postgres", "backend" ], "vendor": "Supabase", "dependencies": { "pip": [ "supabase>=2.0.0", "requests>=2.28" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/supabase_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/supabase_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/supabase_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/supabase_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/supabase_resource/requirements.txt", "icon": "si:supabase", "x-dagster-provides": [ "supabase_resource" ], "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/supabase_rag.md", "last_validated": "2026-07-07" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:supabase" ] }, { "id": "supabase_storage_monitor", "name": "Supabase Storage Monitor", "category": "sensor", "description": "Monitor a Supabase Storage bucket for new files and emit a RunRequest per new object.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/supabase_storage_monitor", "tags": [ "sensor", "supabase", "storage", "monitor" ], "vendor": "Supabase", "dependencies": { "pip": [ "supabase>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/supabase_storage_monitor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/supabase_storage_monitor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/supabase_storage_monitor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/supabase_storage_monitor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/supabase_storage_monitor/requirements.txt", "icon": "si:supabase", "validation": { "level": "code", "last_validated": "2026-07-06" }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:supabase" ] }, { "id": "supabase_vector_search_asset", "name": "Supabase Vector Search", "category": "ai", "description": "pgvector similarity search against a Supabase table with a vector column.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/supabase_vector_search_asset", "tags": [ "ai", "supabase", "pgvector", "vector-search", "embeddings" ], "vendor": "Supabase", "dependencies": { "pip": [ "supabase>=2.0.0", "pandas>=1.5.0", "numpy>=1.20.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/supabase_vector_search_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/supabase_vector_search_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/supabase_vector_search_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/supabase_vector_search_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/supabase_vector_search_asset/requirements.txt", "icon": "si:supabase", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/supabase_rag.md", "last_validated": "2026-07-07" }, "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:supabase" ] }, { "id": "supervisor_agent", "name": "Supervisor Agent", "category": "ai", "description": "Planner LLM reads a task and picks tools from a bounded YAML-declared set. Each pick fans out to its own per-tool Dagster asset (LLM persona). A synthesizer LLM reads all tool outputs + task and writes the grounded final answer. The 'agent of agents' pattern with full lineage.", "path": "assets/ai/supervisor_agent", "tags": [ "ai", "agent", "agentic", "supervisor", "planner", "multi-agent", "openai" ], "icon": "Sparkles", "type": "dagster_community_components.SupervisorAgentComponent", "component_type": "dagster_community_components.SupervisorAgentComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/supervisor_agent/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/supervisor_agent/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/supervisor_agent/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/supervisor_agent/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/supervisor_agent/requirements.txt", "dependencies": { "pip": [ "pandas", "openai>=1.0.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/supervisor_agent.md", "last_validated": "2026-07-07" }, "version": "1.0.0", "author": "Dagster Community", "produces": [ "asset" ], "agent_hints": { "output_type": "pd.DataFrame" } }, { "id": "support_ticket_ingestion", "name": "Support Ticket Ingestion", "category": "ingestion", "description": "Component for ingesting support ticket data from help desk platforms.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/support_ticket_ingestion", "tags": [ "ingestion", "support", "ticket" ], "dependencies": { "pip": [ "dlt[zendesk]>=0.4.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/support_ticket_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/support_ticket_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/support_ticket_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/support_ticket_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/support_ticket_ingestion/requirements.txt", "icon": "ArrowUpFromLine", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 reads support tickets from a configured vendor (Zendesk / Freshdesk / Intercom / etc.).", "outputs": "DataFrame with normalized ticket schema (ticket_id, subject, status, requester, agent, created_at, updated_at).", "side_effects": "Requires vendor-specific credentials per config.", "anti_uses": "For a specific vendor prefer its dedicated ingestion (zendesk_ingestion / freshdesk_ingestion).", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "support_ticket_standardizer", "name": "Support Ticket Standardizer", "category": "analytics", "description": "Component for standardizing support ticket data across platforms.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/support_ticket_standardizer", "tags": [ "analytics", "support", "ticket", "standardizer" ], "dependencies": { "pip": [ "pandas>=1.5.0", "numpy>=1.24.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/support_ticket_standardizer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/support_ticket_standardizer/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/support_ticket_standardizer/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/support_ticket_standardizer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/support_ticket_standardizer/requirements.txt", "icon": "BarChart2", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame of support tickets from a specific vendor (Zendesk / Freshdesk / Intercom).", "outputs": "Standardized (ticket_id, requester, agent, status, priority, created_at, resolved_at) schema." }, "produces": [ "asset", "asset_check" ] }, { "id": "surrogate_key", "name": "SurrogateKeyComponent", "category": "transformation", "description": "Generate stable surrogate keys \u2014 deterministic SHA-256 hash of business-key columns, or sequential integers.", "version": "1.0.0", "author": "Dagster Community", "path": "transforms/surrogate_key", "tags": [ "surrogate-key", "warehouse", "dimension", "hash" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/surrogate_key/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/surrogate_key/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/surrogate_key/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/surrogate_key/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/surrogate_key/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/transformations.md", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "Any DataFrame.", "outputs": "DataFrame + a NEW surrogate key column (deterministic hash or sequential integer).", "side_effects": "Adds column. Hash-based is stable; sequential is deterministic given input order.", "anti_uses": "For arbitrary hashing use hash. For natural key concatenation use formula." }, "produces": [ "asset" ] }, { "id": "survival_analysis", "name": "Survival Analysis", "category": "analytics", "description": "Estimate survival functions using Kaplan-Meier or Cox proportional hazards model.", "path": "assets/analytics/survival_analysis", "tags": [ "analytics", "survival", "analysis" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/survival_analysis/schema.json", "component_type": "dagster_component_templates.SurvivalAnalysisComponent", "icon": "BarChart2", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/survival_analysis/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/survival_analysis/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/survival_analysis/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/survival_analysis/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/subscription_survival.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with duration + event columns.", "outputs": "DataFrame with survival function + hazard estimates.", "side_effects": "Requires lifelines. For customer churn timing, medical time-to-event, etc.", "anti_uses": "For simple binary churn use churn_prediction / logistic_regression_model.", "requires_pip": [ "lifelines" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "lifelines" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "svm", "name": "SVM", "category": "analytics", "description": "Fit a Support Vector Machine for classification or regression and emit predictions.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/svm", "tags": [ "analytics", "model", "svm", "classification", "regression" ], "dependencies": { "pip": [ "pandas", "scikit-learn", "numpy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/svm/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/svm/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/svm/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/svm/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/svm/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with numeric feature columns + target column.", "outputs": "DataFrame with predictions (+ decision function values).", "side_effects": "Slow on large data (O(n\u00b2-n\u00b3)). Requires sklearn.", "anti_uses": "For >100K rows prefer gradient_boosting_model or a linear model. Feature scaling matters \u2014 chain feature_scaler upstream.", "requires_pip": [ "sklearn" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "synapse_sql_pool_admin_job", "name": "Synapse SQL Pool Admin Job", "category": "jobs", "description": "Pause / resume / scale a Synapse dedicated SQL pool via the management REST API. Op-job (not an asset) \u2014 schedule it to halve dedicated SQL pool spend by pausing nightly + on weekends.", "path": "jobs/synapse_sql_pool_admin_job", "tags": [ "job", "azure", "synapse", "infrastructure", "cost-control" ], "type": "dagster_component_templates.SynapseSqlPoolAdminJobComponent", "component_type": "dagster_component_templates.SynapseSqlPoolAdminJobComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/synapse_sql_pool_admin_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/synapse_sql_pool_admin_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/synapse_sql_pool_admin_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/synapse_sql_pool_admin_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/synapse_sql_pool_admin_job/requirements.txt", "icon": "Power", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/fabric_full_stack.md", "last_validated": "2026-05-11" }, "vendor": "Microsoft", "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "azure-identity", "requests" ] }, "produces": [ "job", "schedule" ], "agent_hints": {} }, { "id": "synthetic_audio_generator", "name": "Synthetic Audio Generator", "category": "source", "description": "Generate sample WAV files (sine tones) and emit a DataFrame describing them.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/source/synthetic_audio_generator", "tags": [ "synthetic-audio-generator", "source" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/synthetic_audio_generator/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/synthetic_audio_generator/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/synthetic_audio_generator/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/synthetic_audio_generator/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/synthetic_audio_generator/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": { "output_type": "pd.DataFrame" } }, { "id": "synthetic_data", "name": "Synthetic Data", "category": "ai", "description": "Generate synthetic data rows using an LLM based on a schema definition.", "path": "assets/ai/synthetic_data", "tags": [ "ai", "synthetic", "data" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/synthetic_data/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/synthetic_data/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/synthetic_data/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/synthetic_data/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/synthetic_data/requirements.txt", "icon": "Sparkles", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/nlp_utilities.md", "last_validated": "2026-05-08" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "litellm" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": {} }, { "id": "synthetic_data_generator", "name": "Synthetic Data Generator", "category": "ai", "description": "Component for generating synthetic/mock data for demos and testing.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/synthetic_data_generator", "tags": [ "ai", "synthetic", "data", "generator" ], "dependencies": { "pip": [ "pandas>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/synthetic_data_generator/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/synthetic_data_generator/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/synthetic_data_generator/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/synthetic_data_generator/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/synthetic_data_generator/requirements.txt", "icon": "Sparkles", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/adls_round_trip.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "None (root source) \u2014 generates synthetic tabular data per `schema_type`.", "outputs": "DataFrame with fixed schema per schema_type. Common schemas:\n \u2022 'customers' \u2192 customer_id, first_name, last_name, email, phone, city, state, signup_date, lifetime_value, is_active\n \u2022 'orders' \u2192 order_id, customer_id, order_date, CATEGORY (NOT product_id), num_items, subtotal, shipping, tax, total, status, region\n \u2022 'products' \u2192 product_id, name, category, price, cost, inventory\n \u2022 'transactions' \u2192 txn_id, customer_id, amount, merchant, timestamp\n \u2022 'support_tickets' \u2192 ticket_id, customer_id, subject, priority, status, created_at, resolved_at", "side_effects": "Produces ONE schema per call. Default order_date range: last 365 days (was 30) \u2014 gives cohort_analysis / window_calculation / ts_forecast real signal. Override via schema_options={date_range_days: N}. For multiple datasets use SEPARATE calls with different schema_type. Never self-join synthetic tables.", "anti_uses": "Not for reading real files (use file_ingestion). Not for custom schemas (use a formula step after generation).", "input_type": null, "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ] }, { "id": "synthetic_image_generator", "name": "Synthetic Image Generator", "category": "source", "description": "Generate sample PNG images and emit a DataFrame describing them.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/source/synthetic_image_generator", "tags": [ "synthetic-image-generator", "source" ], "dependencies": { "pip": [ "pandas", "pillow", "piexif" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/synthetic_image_generator/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/synthetic_image_generator/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/synthetic_image_generator/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/synthetic_image_generator/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/synthetic_image_generator/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": { "output_type": "pd.DataFrame" } }, { "id": "synthetic_pdf_generator", "name": "Synthetic Pdf Generator", "category": "source", "description": "Generate sample PDFs and emit a DataFrame describing them.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/source/synthetic_pdf_generator", "tags": [ "synthetic-pdf-generator", "source" ], "dependencies": { "pip": [ "pandas", "reportlab" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/synthetic_pdf_generator/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/synthetic_pdf_generator/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/synthetic_pdf_generator/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/synthetic_pdf_generator/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/synthetic_pdf_generator/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": { "output_type": "pd.DataFrame" } }, { "id": "synthetic_video_generator", "name": "Synthetic Video Generator", "category": "source", "description": "Generate small test MP4s (color-bars video + sine tone audio) via ffmpeg.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/source/synthetic_video_generator", "tags": [ "synthetic-video-generator", "source" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/synthetic_video_generator/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/synthetic_video_generator/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/synthetic_video_generator/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/synthetic_video_generator/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/source/synthetic_video_generator/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": { "output_type": "pd.DataFrame" } }, { "id": "tableau_assets", "name": "TableauAssets", "category": "integration", "description": "Import Tableau workbooks + sheets as Dagster external assets via dagster-tableau.", "version": "1.0.0", "author": "Dagster Community", "path": "integrations/tableau_assets", "tags": [ "integration", "tableau", "bi", "official" ], "dependencies": { "pip": [ "dagster", "dagster-tableau" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/tableau_assets/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/tableau_assets/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/tableau_assets/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/tableau_assets/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/tableau_assets/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "teams_notification_job", "name": "TeamsNotificationJobComponent", "category": "jobs", "description": "Send a message to a Microsoft Teams channel via incoming webhook.", "version": "1.0.0", "author": "Dagster Community", "path": "jobs/teams_notification_job", "tags": [ "job", "teams", "microsoft", "notification" ], "dependencies": { "pip": [ "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/teams_notification_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/teams_notification_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/teams_notification_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/teams_notification_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/teams_notification_job/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "job", "schedule" ], "agent_hints": {}, "consumes": [ "resource:teams" ] }, { "id": "tecton_asset", "name": "Tecton Feature Store Asset", "category": "analytics", "description": "Trigger Tecton feature view materialization jobs via the Tecton SDK.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/tecton_asset", "tags": [ "analytics", "tecton", "asset" ], "dependencies": { "pip": [ "tecton-client" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/tecton_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/tecton_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/tecton_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/tecton_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/tecton_asset/requirements.txt", "icon": "BarChart2", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "temporal_query_asset", "name": "Temporal Query Asset", "vendor": "Temporal", "category": "infrastructure", "description": "Materialize the live state of a running Temporal workflow via a Query (read-only). Great for long-lived workflows exposing accumulated state.", "path": "assets/infrastructure/temporal_query_asset", "tags": [ "temporal", "workflow", "query", "infrastructure", "long-lived" ], "icon": "si:temporal", "type": "dagster_community_components.TemporalQueryAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/temporal_query_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/temporal_query_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/temporal_query_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/temporal_query_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/temporal_query_asset/requirements.txt", "component_type": "dagster_community_components.TemporalQueryAssetComponent", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/temporal_signal_query.md", "last_validated": "2026-07-02" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "temporalio" ] }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "temporal_signal_asset", "name": "Temporal Signal Asset", "vendor": "Temporal", "category": "infrastructure", "description": "Send a Signal to a running Temporal workflow as a Dagster asset. For long-lived workflows that need Dagster-driven state pushes (flush, add, kick, shutdown).", "path": "assets/infrastructure/temporal_signal_asset", "tags": [ "temporal", "workflow", "signal", "infrastructure", "long-lived" ], "icon": "si:temporal", "type": "dagster_community_components.TemporalSignalAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/temporal_signal_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/temporal_signal_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/temporal_signal_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/temporal_signal_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/temporal_signal_asset/requirements.txt", "component_type": "dagster_community_components.TemporalSignalAssetComponent", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/temporal_signal_query.md", "last_validated": "2026-07-02" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "temporalio" ] }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "temporal_workflow_sensor", "name": "Temporal Workflow Sensor", "vendor": "Temporal", "category": "sensor", "description": "Poll Temporal for terminal workflow status via the temporalio SDK and fire a Dagster job + optional AssetMaterialization/Observation. Pairs with external_temporal_workflow or temporal_workflow_trigger.", "path": "sensors/temporal_workflow_sensor", "tags": [ "temporal", "workflow", "sensor", "observation" ], "icon": "si:temporal", "type": "dagster_community_components.TemporalWorkflowSensorComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/temporal_workflow_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/temporal_workflow_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/temporal_workflow_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/temporal_workflow_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/temporal_workflow_sensor/requirements.txt", "component_type": "dagster_community_components.TemporalWorkflowSensorComponent", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/temporal_workflow.md", "last_validated": "2026-07-02" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "temporalio" ] }, "produces": [ "sensor" ], "agent_hints": {} }, { "id": "temporal_workflow_trigger", "name": "Temporal Workflow Trigger", "vendor": "Temporal", "category": "infrastructure", "description": "Start a Temporal Workflow via the temporalio SDK (gRPC). Works against local dev-server, self-hosted clusters, or Temporal Cloud. Captures result in asset metadata.", "path": "assets/infrastructure/temporal_workflow_trigger", "tags": [ "temporal", "workflow", "infrastructure", "durable-execution" ], "icon": "si:temporal", "type": "dagster_community_components.TemporalWorkflowTriggerComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/temporal_workflow_trigger/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/temporal_workflow_trigger/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/temporal_workflow_trigger/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/temporal_workflow_trigger/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/temporal_workflow_trigger/requirements.txt", "component_type": "dagster_community_components.TemporalWorkflowTriggerComponent", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/temporal_workflow.md", "last_validated": "2026-07-02" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "temporalio" ] }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "terraform_asset", "name": "Terraform Asset", "category": "infrastructure", "description": "Provision infrastructure with Terraform as a Dagster asset.", "path": "assets/infrastructure/terraform_asset", "tags": [ "infrastructure", "terraform", "asset" ], "icon": "Server", "type": "dagster_component_templates.TerraformAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/terraform_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/terraform_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/terraform_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/terraform_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/terraform_asset/requirements.txt", "component_type": "dagster_component_templates.TerraformAssetComponent", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/bicep_self_provision.md", "last_validated": "2026-05-06" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster" ] }, "produces": [ "asset" ], "agent_hints": {} }, { "id": "terraform_cloud_asset", "name": "Terraform Cloud Asset", "category": "infrastructure", "description": "HCP Terraform (Terraform Cloud) asset component.", "path": "assets/infrastructure/terraform_cloud_asset", "tags": [ "infrastructure", "terraform", "cloud", "asset" ], "icon": "Server", "type": "dagster_component_templates.TerraformCloudAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/terraform_cloud_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/terraform_cloud_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/terraform_cloud_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/terraform_cloud_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/terraform_cloud_asset/requirements.txt", "component_type": "dagster_component_templates.TerraformCloudAssetComponent", "validation": { "level": "code", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "requests" ] }, "produces": [ "multi_asset" ], "stateful": true, "agent_hints": {} }, { "id": "test_of_means", "name": "TestOfMeans", "category": "analytics", "description": "Run a two-sample t-test on a numeric column grouped by a binary group column.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/test_of_means", "tags": [ "analytics", "stats", "ttest", "ab-testing" ], "dependencies": { "pip": [ "pandas", "scipy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/test_of_means/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/test_of_means/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/test_of_means/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/test_of_means/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/test_of_means/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with a value column + a group column (2 groups).", "outputs": "DataFrame with t-test / Welch's / Mann-Whitney statistics.", "side_effects": "Reduces to 1 row. Requires scipy.", "anti_uses": "For A/B lift+CI use ab_test_analysis (broader). For >2 groups use ANOVA (not in this component).", "requires_pip": [ "scipy" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "text_chunker", "name": "Text Chunker", "category": "ai", "description": "Component for chunking text into smaller pieces.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/text_chunker", "tags": [ "ai", "text", "chunker" ], "dependencies": { "pip": [ "pandas>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/text_chunker/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/text_chunker/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/text_chunker/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/text_chunker/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/text_chunker/requirements.txt", "icon": "Sparkles", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/local_nlp.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame" } }, { "id": "text_classifier", "name": "Text Classifier", "category": "ai", "description": "Component for classifying text with LLMs.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/text_classifier", "tags": [ "ai", "text", "classifier", "agentic" ], "dependencies": { "pip": [ "openai>=1.0.0", "anthropic>=0.18.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/text_classifier/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/text_classifier/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/text_classifier/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/text_classifier/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/text_classifier/requirements.txt", "icon": "Sparkles", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/ai_with_llm.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "text_codec_convert_asset", "name": "Text Codec Convert Asset", "category": "transformation", "description": "Convert text between codecs (e.g. ASCII\u2194EBCDIC) per-row.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/text_codec_convert_asset", "tags": [ "text-codec-convert-asset", "transforms" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/text_codec_convert_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/text_codec_convert_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/text_codec_convert_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/text_codec_convert_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/text_codec_convert_asset/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "text_embedding_asset", "name": "Text Embedding Asset", "category": "ai", "description": "Embed literal text strings from config into a DataFrame \u2014 one row per text with an embedding column. Ideal for RAG query embeddings and intent-label pre-embedding.", "path": "assets/ai/text_embedding_asset", "tags": [ "ai", "embedding", "openai", "rag", "vector-search", "agentic" ], "icon": "Sparkles", "type": "dagster_community_components.TextEmbeddingAssetComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/text_embedding_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/text_embedding_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/text_embedding_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/text_embedding_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/text_embedding_asset/requirements.txt", "component_type": "dagster_community_components.TextEmbeddingAssetComponent", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/supabase_rag.md", "last_validated": "2026-07-07" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "openai", "pandas", "tabulate" ] }, "produces": [ "asset" ], "agent_hints": { "output_type": "pd.DataFrame" } }, { "id": "text_moderator", "name": "Text Moderator", "category": "ai", "description": "Component for content moderation and safety detection.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/text_moderator", "tags": [ "ai", "text", "moderator" ], "dependencies": { "pip": [ "pandas>=1.5.0", "openai>=1.0.0", "anthropic>=0.18.0", "transformers>=4.30.0", "torch>=2.0.0", "requests>=2.31.0", "presidio-analyzer>=2.2.0", "presidio-anonymizer>=2.2.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/text_moderator/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/text_moderator/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/text_moderator/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/text_moderator/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/text_moderator/requirements.txt", "icon": "Sparkles", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/content_moderation.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame" } }, { "id": "text_preprocessing", "name": "Text Preprocessing", "category": "analytics", "description": "Clean and normalize text data for NLP tasks.", "path": "assets/analytics/text_preprocessing", "tags": [ "analytics", "text", "preprocessing" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/text_preprocessing/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/text_preprocessing/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/text_preprocessing/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/text_preprocessing/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/text_preprocessing/requirements.txt", "icon": "BarChart2", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/arxiv_pdf.md", "last_validated": "2026-05-06" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "nltk" ] }, "agent_hints": { "inputs": "DataFrame with a text column.", "outputs": "DataFrame + processed text (lowercased / stopwords removed / tokenized).", "side_effects": "May add or replace text columns per config. Requires nltk or spacy for advanced options.", "requires_pip": [ "nltk" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ] }, { "id": "text_similarity", "name": "Text Similarity", "category": "ai", "description": "Compute semantic or lexical similarity between two text columns or each row against a fixed query string.", "path": "assets/ai/text_similarity", "tags": [ "ai", "nlp", "similarity", "embeddings", "tfidf" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/text_similarity/schema.json", "component_type": "dagster_component_templates.TextSimilarityComponent", "icon": "GitCompare", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/text_similarity/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/text_similarity/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/text_similarity/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/text_similarity/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/nlp_utilities.md", "last_validated": "2026-05-08" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "scikit-learn" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "text_to_columns", "name": "Text to Columns", "category": "transformation", "description": "Split a text column into multiple columns or rows by a delimiter.", "path": "assets/transforms/text_to_columns", "tags": [ "transformation", "text", "columns" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/text_to_columns/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/text_to_columns/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/text_to_columns/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/text_to_columns/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/text_to_columns/requirements.txt", "icon": "Shuffle", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/transformations.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with a delimited string column.", "outputs": "DataFrame with the source column REPLACED by N new columns (one per delimited field).", "side_effects": "Removes source column and adds N new ones per delimiter. Downstream references to source will KeyError.", "anti_uses": "For JSON extraction use json_flatten. For extracting one field use dataframe_extract_field.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "ticket_classifier", "name": "Ticket Classifier", "category": "ai", "description": "Component for classifying support tickets.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/ticket_classifier", "tags": [ "ai", "ticket", "classifier", "agentic" ], "dependencies": { "pip": [ "pandas>=1.5.0", "openai>=1.0.0", "anthropic>=0.18.0", "transformers>=4.30.0", "torch>=2.0.0", "scikit-learn>=1.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/ticket_classifier/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/ticket_classifier/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/ticket_classifier/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/ticket_classifier/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/ticket_classifier/requirements.txt", "icon": "Sparkles", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/local_nlp.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame" } }, { "id": "tiktok_ads_ingestion", "name": "TikTok Ads Ingestion", "category": "ingestion", "description": "Component for ingesting TikTok Ads data using dlt - returns DataFrames.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/tiktok_ads_ingestion", "tags": [ "ingestion", "tiktok", "ads" ], "dependencies": { "pip": [ "dlt[rest_api]>=0.4.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/tiktok_ads_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/tiktok_ads_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/tiktok_ads_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/tiktok_ads_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/tiktok_ads_ingestion/requirements.txt", "icon": "si:tiktok", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 hits vendor's REST API.", "outputs": "DataFrame with columns from TikTok Ads campaigns, ad groups, videos.", "side_effects": "Read-only. Requires TikTok Ads API credentials. Rate-limited per TikTok Ads's tier.", "anti_uses": "For generic REST APIs use rest_api_fetcher. For writing back to TikTok Ads use its dedicated writer (if available).", "requires_resources": [ "tiktok_ads_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "tile_binning", "name": "Tile Binning", "category": "transformation", "description": "Assign records to bins based on a numeric column's value range.", "path": "assets/transforms/tile_binning", "tags": [ "transformation", "tile", "binning" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/tile_binning/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/tile_binning/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/tile_binning/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/tile_binning/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/tile_binning/requirements.txt", "icon": "Shuffle", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/titanic_complete.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with a numeric `column` to bin.", "outputs": "Same DataFrame + ONE new column named `output_column` (defaults to '_bin') containing the bin labels.", "side_effects": "Adds ONE column; does NOT rename or remove the source column. Original `column` still present downstream.", "anti_uses": "method valid values are 'equal_width' (pd.cut), 'equal_freq' (pd.qcut), or 'custom' (uses bin_edges). NOT 'quantile'.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "time_series_generator", "name": "Time Series Generator", "category": "analytics", "description": "Component for generating synthetic time-series data with various patterns.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/time_series_generator", "tags": [ "analytics", "time", "series", "generator" ], "dependencies": { "pip": [ "pandas>=2.0.0", "numpy>=1.24.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/time_series_generator/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/time_series_generator/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/time_series_generator/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/time_series_generator/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/time_series_generator/requirements.txt", "icon": "BarChart2", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/churn.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "None (root generator) \u2014 creates synthetic time-series data per config.", "outputs": "DataFrame with datetime + value column(s).", "side_effects": "For demos / tests. Requires numpy.", "anti_uses": "For real data use ts_forecast on existing series." }, "produces": [ "asset", "asset_check" ] }, { "id": "timescaledb_resource", "name": "TimescaleDB Resource", "category": "resource", "description": "TimescaleDB connection resource (Postgres extension) with hypertable / compression / retention helpers.", "path": "resources/timescaledb_resource", "tags": [ "resource", "timescaledb", "timeseries", "postgres" ], "vendor": "TimescaleDB", "dependencies": { "pip": [ "sqlalchemy>=2.0.0", "psycopg2-binary" ] }, "version": "1.0.0", "author": "Dagster Community", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/timescaledb_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/timescaledb_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/timescaledb_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/timescaledb_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/timescaledb_resource/requirements.txt", "validation": { "level": "live", "last_validated": "2026-05-27", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/timescaledb.md" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "top_n_per_group", "name": "Top N Per Group", "component_type": "dagster_component_templates.TopNPerGroupComponent", "path": "assets/transforms/top_n_per_group", "category": "transformation", "icon": "Trophy", "description": "Keep the top N rows per group, sorted by a value column. Equivalent to SQL ROW_NUMBER() OVER (PARTITION BY ... ORDER BY ... DESC) <= N. Right for 'top 3 products per category', '5 most recent orders per customer'.", "tags": [ "transformation", "top-n", "rank", "window", "row-number" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/top_n_per_group/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/top_n_per_group/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/top_n_per_group/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/top_n_per_group/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/top_n_per_group/schema.json", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/transformations.md", "last_validated": "2026-05-15" }, "agent_hints": { "inputs": "DataFrame with `group_by` and `order_by` columns present.", "outputs": "DataFrame with the top N rows per group by the order column. Column set unchanged.", "side_effects": "Reduces row count to N \u00d7 number_of_groups. Column set unchanged.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "topic_modeler", "name": "Topic Modeler", "category": "ai", "description": "Assign topic labels to rows using LDA or NMF topic modeling.", "path": "assets/ai/topic_modeler", "tags": [ "ai", "nlp", "topic-modeling", "lda", "nmf", "unsupervised" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/topic_modeler/schema.json", "component_type": "dagster_component_templates.TopicModelerComponent", "icon": "Layers", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/topic_modeler/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/topic_modeler/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/topic_modeler/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/topic_modeler/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/nlp_utilities.md", "last_validated": "2026-05-08" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "scikit-learn" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "topic_modeling", "name": "Topic Modeling", "category": "analytics", "description": "Discover topics in a text column using Latent Dirichlet Allocation (LDA).", "path": "assets/analytics/topic_modeling", "tags": [ "analytics", "topic", "modeling" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/topic_modeling/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/topic_modeling/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/topic_modeling/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/topic_modeling/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/topic_modeling/requirements.txt", "icon": "BarChart2", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/customer_analytics.md", "last_validated": "2026-05-08" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "scikit-learn", "nltk" ] }, "agent_hints": { "inputs": "DataFrame with a text column.", "outputs": "DataFrame + `topic_id` per document + `topic_keywords`.", "side_effects": "LDA-based topic modeling. Requires scikit-learn or gensim.", "requires_pip": [ "sklearn" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ] }, { "id": "train_test_splitter", "name": "Train/Test Splitter", "category": "transformation", "description": "Split a DataFrame into train/test (and optional validation) assets using random, time, or hash strategies.", "path": "assets/transforms/train_test_splitter", "tags": [ "transformation", "train_test_split", "ml", "feature_engineering", "sampling" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/train_test_splitter/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/train_test_splitter/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/train_test_splitter/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/train_test_splitter/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/train_test_splitter/requirements.txt", "icon": "Split", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/transformations.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "Any DataFrame + a target/label column (optional for stratification).", "outputs": "Emits TWO assets \u2014 train_df and test_df \u2014 via multi-output.", "side_effects": "Splits rows randomly (or stratified). Downstream picks one output.", "anti_uses": "For a single held-out sample use sample. For k-fold use cross_validation.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "translation_api_asset", "name": "TranslationApiAssetComponent", "category": "ai", "description": "Translate a text column to one or more target languages via Cloud Translation v3. Returns the upstream DataFrame with one new column per target language. Supports html / plain-text mime types and per-row source-language auto-detection.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/translation_api_asset", "tags": [ "ai", "translation", "google", "i18n", "localization" ], "dependencies": { "pip": [ "dagster>=1.8.0", "pandas>=1.5.0", "google-cloud-translate>=3.12.0", "google-auth>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/translation_api_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/translation_api_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/translation_api_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/translation_api_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/translation_api_asset/requirements.txt", "component_type": "dagster_component_templates.TranslationApiAssetComponent", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/vision_translate.md", "last_validated": "2026-05-08" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "transpose", "name": "Transpose", "category": "transformation", "description": "Transpose a DataFrame \u2014 rows become columns.", "path": "assets/transforms/transpose", "tags": [ "transformation", "transpose" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/transpose/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/transpose/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/transpose/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/transpose/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/transpose/requirements.txt", "icon": "Shuffle", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/pivot_unpivot.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "Any DataFrame.", "outputs": "DataFrame with rows and columns SWAPPED \u2014 row count becomes column count and vice versa.", "side_effects": "Drastic reshape. Downstream cannot reference old column/row semantics.", "anti_uses": "Rarely useful in analytical pipelines. For wide\u2194long use pivot/unpivot. For crosstab use cross_tab.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "trino_io_manager", "name": "Trino IO Manager", "category": "io_manager", "description": "Register a Trino IO manager that reads and writes Pandas DataFrames via Trino SQL", "version": "0.1.0", "author": "Dagster Labs", "path": "io_managers/trino_io_manager", "tags": [ "io_manager", "trino", "sql", "lakehouse", "iceberg" ], "dependencies": { "pip": [ "trino>=0.320.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/trino_io_manager/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/trino_io_manager/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/trino_io_manager/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/trino_io_manager/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/io_managers/trino_io_manager/requirements.txt", "icon": "si:trino", "x-dagster-provides": [ "io_manager" ], "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/trino.md", "last_validated": "2026-05-11" }, "vendor": "Trino", "produces": [ "resource" ], "agent_hints": {} }, { "id": "trino_resource", "name": "Trino Resource", "category": "resource", "description": "Register a Trino distributed SQL query engine resource for use by other components", "version": "0.1.0", "author": "Dagster Labs", "path": "resources/trino_resource", "tags": [ "resource", "trino", "sql", "lakehouse", "iceberg" ], "dependencies": { "pip": [ "trino>=0.320.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/trino_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/trino_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/trino_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/trino_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/trino_resource/requirements.txt", "icon": "si:trino", "x-dagster-provides": [ "trino_resource" ], "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/trino.md", "last_validated": "2026-05-11" }, "vendor": "Trino", "produces": [ "resource" ], "agent_hints": {} }, { "id": "ts_compare", "name": "Ts Compare", "category": "analytics", "description": "Component for comparing ARIMA and ETS model performance on a time series.", "path": "assets/analytics/ts_compare", "tags": [ "analytics", "compare" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ts_compare/schema.json", "component_type": "dagster_component_templates.TsCompareComponent", "icon": "BarChart2", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ts_compare/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ts_compare/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ts_compare/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ts_compare/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/forecast_comparison.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "Multiple time-series (via upstream keys).", "outputs": "DataFrame comparing forecast metrics side-by-side.", "side_effects": "Requires statsmodels.", "requires_pip": [ "statsmodels" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "statsmodels", "numpy" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "ts_covariate_forecast", "name": "TSCovariateForecast", "category": "analytics", "description": "Forecast a time series with exogenous regressors via SARIMAX.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/ts_covariate_forecast", "tags": [ "analytics", "time-series", "forecast", "sarimax" ], "dependencies": { "pip": [ "pandas", "statsmodels", "numpy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ts_covariate_forecast/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ts_covariate_forecast/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ts_covariate_forecast/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ts_covariate_forecast/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ts_covariate_forecast/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/time_series_advanced.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with datetime + target + covariate columns.", "outputs": "DataFrame with forecast rows using covariates (SARIMAX / regression with time-series errors).", "side_effects": "Requires statsmodels.", "anti_uses": "For univariate use ts_forecast. For non-time-series with covariates use linear_regression_model.", "requires_pip": [ "statsmodels" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "ts_filler", "name": "Time Series Filler", "category": "transformation", "description": "Fill gaps in a time series by resampling to a regular frequency.", "path": "assets/transforms/ts_filler", "tags": [ "transformation", "filler" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/ts_filler/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/ts_filler/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/ts_filler/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/ts_filler/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/ts_filler/requirements.txt", "icon": "Shuffle", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/forecast_comparison.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with a datetime column + optional value columns.", "outputs": "DataFrame with gap rows filled at a consistent frequency (values = 0/NaN/interpolated per config).", "side_effects": "Row count grows to cover full time range. Requires sorted datetime.", "anti_uses": "For simple imputation of missing values use imputation. For forecasting use arima_forecast.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "ts_forecast", "name": "Ts Forecast", "category": "analytics", "description": "Component for generating time series forecasts using ARIMA or ETS models.", "path": "assets/analytics/ts_forecast", "tags": [ "analytics", "forecast" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ts_forecast/schema.json", "component_type": "dagster_component_templates.TsForecastComponent", "icon": "BarChart2", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ts_forecast/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ts_forecast/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ts_forecast/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ts_forecast/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/time_series_advanced.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with datetime + numeric target column, sorted by date.", "outputs": "DataFrame with forecast rows (date, forecast, lower_ci, upper_ci).", "side_effects": "Output is FUTURE points, not the input. Order-sensitive. Requires statsmodels.", "anti_uses": "For ARIMA specifically use arima_forecast. For ETS use ets_forecast. For per-group forecasts run multiple times or use ts_model_factory.", "requires_pip": [ "statsmodels" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "statsmodels" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "ts_model_factory", "name": "Ts Model Factory", "category": "analytics", "description": "Component for fitting individual time series models per group.", "path": "assets/analytics/ts_model_factory", "tags": [ "analytics", "model", "factory" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ts_model_factory/schema.json", "component_type": "dagster_component_templates.TsModelFactoryComponent", "icon": "BarChart2", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ts_model_factory/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ts_model_factory/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ts_model_factory/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/ts_model_factory/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/time_series_advanced.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with datetime + target column + config.", "outputs": "Multiple model assets, one per config variant.", "side_effects": "Emits many trained models \u2014 cost/time scales with config space. Requires statsmodels.", "requires_pip": [ "statsmodels" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "statsmodels" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "twilio_notification", "name": "Twilio Notification Sensor", "category": "sensor", "description": "Component that sends SMS or WhatsApp notifications when Dagster assets", "path": "sensors/twilio_notification", "tags": [ "sensor", "twilio", "notification" ], "icon": "si:twilio", "type": "dagster_component_templates.TwilioNotificationSensor", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/twilio_notification/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/twilio_notification/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/twilio_notification/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/twilio_notification/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/twilio_notification/requirements.txt", "component_type": "dagster_component_templates.TwilioNotificationSensor", "validation": { "level": "code", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "requests" ] }, "produces": [ "sensor" ], "agent_hints": {} }, { "id": "twilio_resource", "name": "Twilio Resource", "category": "resource", "description": "Register a dagster-twilio TwilioResource for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/twilio_resource", "tags": [ "resource", "twilio", "sms", "notification" ], "dependencies": { "pip": [ "dagster-twilio" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/twilio_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/twilio_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/twilio_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/twilio_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/twilio_resource/requirements.txt", "icon": "si:twilio", "x-dagster-provides": [ "twilio_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "twilio_sms_job", "name": "TwilioSmsJobComponent", "category": "jobs", "description": "Send an SMS via Twilio as a job \u2014 useful for on-call paging without a full PagerDuty stack.", "version": "1.0.0", "author": "Dagster Community", "path": "jobs/twilio_sms_job", "tags": [ "job", "twilio", "sms", "notification" ], "dependencies": { "pip": [ "twilio" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/twilio_sms_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/twilio_sms_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/twilio_sms_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/twilio_sms_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/twilio_sms_job/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "job", "schedule" ], "agent_hints": {} }, { "id": "twitter_ads_ingestion", "name": "Twitter/X Ads Ingestion", "category": "ingestion", "description": "Component for ingesting Twitter/X Ads data using dlt - returns DataFrames.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/twitter_ads_ingestion", "tags": [ "ingestion", "twitter", "ads" ], "dependencies": { "pip": [ "dlt[rest_api]>=0.4.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/twitter_ads_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/twitter_ads_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/twitter_ads_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/twitter_ads_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/twitter_ads_ingestion/requirements.txt", "icon": "si:x", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 hits vendor's REST API.", "outputs": "DataFrame with columns from Twitter/X Ads campaigns, ad performance.", "side_effects": "Read-only. Requires Twitter/X Ads API credentials. Rate-limited per Twitter/X Ads's tier.", "anti_uses": "For generic REST APIs use rest_api_fetcher. For writing back to Twitter/X Ads use its dedicated writer (if available).", "requires_resources": [ "twitter_ads_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "type_coercer", "name": "Type Coercer", "category": "transformation", "description": "Cast DataFrame columns to specified types, handling mixed types common in document database output.", "path": "assets/transforms/type_coercer", "tags": [ "transformation", "documents", "type-casting", "coercion", "data-quality" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/type_coercer/schema.json", "component_type": "dagster_component_templates.TypeCoercerComponent", "icon": "RefreshCw", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/type_coercer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/type_coercer/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/type_coercer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/type_coercer/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/kitchen_sink.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with columns to convert.", "outputs": "Same columns; dtypes changed per type_map. Values that fail to coerce become NaN with errors='coerce'.", "side_effects": "Modifies column dtypes IN PLACE. Downstream steps that need float columns (tile_binning, models) should chain AFTER this.", "chains_with": "Typical predecessor to tile_binning, logistic_regression_model, and any component requiring numeric types.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "unique_dedup", "name": "Unique / Dedup", "category": "transformation", "description": "Remove or flag duplicate records from a DataFrame.", "path": "assets/transforms/unique_dedup", "tags": [ "transformation", "unique", "dedup" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/unique_dedup/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/unique_dedup/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/unique_dedup/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/unique_dedup/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/unique_dedup/requirements.txt", "icon": "Shuffle", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/kitchen_sink.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "Any DataFrame.", "outputs": "Same columns; fewer rows. Preserves column order and dtypes.", "side_effects": "Row count decreases; column set unchanged.", "anti_uses": "Do NOT pass `subset: []` (empty list) \u2014 it will error. Either OMIT `subset` entirely (dedup on all columns) OR pass a non-empty list of column names. Do not use to filter by predicate \u2014 use `filter` component.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "unpivot", "name": "UnpivotComponent", "category": "transformation", "description": "Unpivot a DataFrame from wide to long \u2014 melt N value columns into 2 columns (variable, value).", "version": "1.0.0", "author": "Dagster Community", "path": "transforms/unpivot", "tags": [ "unpivot", "melt", "wide-to-long", "reshape" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/unpivot/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/unpivot/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/unpivot/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/unpivot/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/unpivot/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/prometheus_demo.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame in wide format with multiple value columns.", "outputs": "DataFrame in long format \u2014 `id_vars` preserved, `value_vars` columns collapsed into two new columns (default names 'variable' and 'value').", "side_effects": "Row count multiplies by number of value_vars. Column set becomes id_vars + 2 (variable, value). Downstream references to the original value_var column names will KeyError.", "anti_uses": "For wide \u2192 long with structural preservation, unpivot is right. For dropping columns, use select_columns." }, "produces": [ "asset" ] }, { "id": "vanta_controls_ingestion", "name": "Vanta Controls Ingestion", "category": "ingestion", "description": "Fetches Vanta compliance controls (SOC 2, ISO 27001, HIPAA, PCI) plus status and evidence counts via GET /v1/controls. Returns a flattened pandas DataFrame.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/vanta_controls_ingestion", "tags": [ "ingestion", "vanta", "compliance", "soc2", "iso27001", "grc", "rest" ], "vendor": "Vanta", "dependencies": { "pip": [ "requests>=2.28", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/vanta_controls_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/vanta_controls_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/vanta_controls_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/vanta_controls_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/vanta_controls_ingestion/requirements.txt", "component_type": "dagster_community_components.VantaControlsIngestionComponent", "icon": "Shield", "x-dagster-consumes": [ "vanta_resource" ], "validation": { "level": "code", "last_validated": "2026-07-06" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 hits vendor's REST API.", "outputs": "DataFrame with columns from Vanta compliance controls + evidence.", "side_effects": "Read-only. Requires Vanta API credentials. Rate-limited per Vanta's tier.", "anti_uses": "For generic REST APIs use rest_api_fetcher. For writing back to Vanta use its dedicated writer (if available).", "requires_resources": [ "vanta_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "vanta_evidence_response_agent", "name": "Vanta Evidence Response Agent", "category": "ai", "description": "Reads a DataFrame of Vanta controls and uses an LLM (OpenAI / Anthropic) to draft SOC 2 / ISO 27001 evidence responses per row.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/vanta_evidence_response_agent", "tags": [ "ai", "llm", "vanta", "compliance", "soc2", "iso27001", "grc" ], "vendor": "Vanta", "dependencies": { "pip": [ "openai>=1.0.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vanta_evidence_response_agent/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vanta_evidence_response_agent/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vanta_evidence_response_agent/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vanta_evidence_response_agent/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vanta_evidence_response_agent/requirements.txt", "component_type": "dagster_community_components.VantaEvidenceResponseAgentComponent", "icon": "Robot", "validation": { "level": "code", "last_validated": "2026-07-06" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "vanta_resource", "name": "Vanta Resource", "category": "resource", "description": "Vanta API v1 resource with OAuth2 client-credentials token minting, caching, and auto-refresh. Provides get_client() returning an auth'd requests.Session.", "version": "1.0.0", "author": "Dagster Community", "path": "resources/vanta_resource", "tags": [ "resource", "vanta", "compliance", "soc2", "iso27001", "grc" ], "vendor": "Vanta", "dependencies": { "pip": [ "requests>=2.28" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/vanta_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/vanta_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/vanta_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/vanta_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/vanta_resource/requirements.txt", "component_type": "dagster_community_components.VantaResourceComponent", "icon": "Shield", "x-dagster-provides": [ "vanta_resource" ], "validation": { "level": "code", "last_validated": "2026-07-06" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "vector_store_query", "name": "Vector Store Query", "category": "ai", "description": "Component for querying vector stores.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/vector_store_query", "tags": [ "ai", "vector", "store", "query" ], "dependencies": { "pip": [ "chromadb>=0.4.0", "pinecone-client>=3.0.0", "qdrant-client>=1.7.0", "faiss-cpu>=1.7.4", "pandas>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vector_store_query/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vector_store_query/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vector_store_query/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vector_store_query/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vector_store_query/requirements.txt", "icon": "Sparkles", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/vector_rag.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame" } }, { "id": "vector_store_writer", "name": "Vector Store Writer", "category": "ai", "description": "Component for writing embeddings to vector stores.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/vector_store_writer", "tags": [ "ai", "vector", "store", "writer" ], "dependencies": { "pip": [ "chromadb>=0.4.0", "pinecone-client>=3.0.0", "qdrant-client>=1.7.0", "faiss-cpu>=1.7.4", "pandas>=2.0.0", "numpy>=1.24.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vector_store_writer/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vector_store_writer/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vector_store_writer/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vector_store_writer/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vector_store_writer/requirements.txt", "icon": "Sparkles", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/vector_rag.md", "last_validated": "2026-05-08" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame" } }, { "id": "vercel_ai_gateway_agent", "name": "Vercel AI Gateway Agent", "vendor": "Vercel", "category": "ai", "description": "Single-shot LLM agent via Vercel AI Gateway \u2014 OpenAI-compatible proxy that routes to any provider with unified billing + automatic fallback + Vercel observability.", "path": "assets/ai/vercel_ai_gateway_agent", "tags": [ "ai", "agent", "vercel", "ai-gateway", "llm", "mcp", "agentic" ], "icon": "si:vercel", "type": "dagster_community_components.VercelAIGatewayAgentComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vercel_ai_gateway_agent/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vercel_ai_gateway_agent/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vercel_ai_gateway_agent/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vercel_ai_gateway_agent/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vercel_ai_gateway_agent/requirements.txt", "component_type": "dagster_community_components.VercelAIGatewayAgentComponent", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/vercel_ai_gateway_agent.md", "last_validated": "2026-07-02" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "openai", "mcp" ] }, "produces": [ "asset" ], "agent_hints": { "output_type": "pd.DataFrame" } }, { "id": "vercel_deployment_sensor", "name": "Vercel Deployment Sensor", "vendor": "Vercel", "category": "sensor", "description": "Poll Vercel for deployment state, emit AssetMaterialization/Observation on READY, and fire a Dagster job. Optionally fire on ERROR for alert flows.", "path": "sensors/vercel_deployment_sensor", "tags": [ "vercel", "deployment", "sensor", "observation" ], "icon": "si:vercel", "type": "dagster_community_components.VercelDeploymentSensorComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/vercel_deployment_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/vercel_deployment_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/vercel_deployment_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/vercel_deployment_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/vercel_deployment_sensor/requirements.txt", "component_type": "dagster_community_components.VercelDeploymentSensorComponent", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/vercel_deployment.md", "last_validated": "2026-07-02" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "requests" ] }, "produces": [ "sensor" ], "agent_hints": {} }, { "id": "vertex_ai_text_embeddings_asset", "name": "VertexAITextEmbeddingsAssetComponent", "category": "ai", "description": "Generate text embeddings via Vertex AI's text-embedding models (text-embedding-004, gemini-embedding-001, text-multilingual-embedding-002, etc.). Drop-in shape parallel to embeddings_generator and the openai/anthropic embedding components. Useful for RAG, semantic search, vector store loaders.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/vertex_ai_text_embeddings_asset", "tags": [ "ai", "embeddings", "vertex-ai", "google", "rag", "vector-search", "semantic-search" ], "dependencies": { "pip": [ "dagster>=1.8.0", "pandas>=1.5.0", "google-cloud-aiplatform>=1.40.0", "google-auth>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vertex_ai_text_embeddings_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vertex_ai_text_embeddings_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vertex_ai_text_embeddings_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vertex_ai_text_embeddings_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vertex_ai_text_embeddings_asset/requirements.txt", "component_type": "dagster_component_templates.VertexAITextEmbeddingsAssetComponent", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/vertex_ai_embeddings.md", "last_validated": "2026-05-08" }, "vendor": "Google", "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "consumes": [ "resource:vertex_ai" ] }, { "id": "victoriametrics_cardinality_sensor", "name": "VictoriaMetrics Cardinality Sensor", "category": "sensor", "description": "Poll VictoriaMetrics /api/v1/status/tsdb and emit a RunRequest (or warning SkipReason) when totalSeries crosses a threshold.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/victoriametrics_cardinality_sensor", "tags": [ "sensor", "victoriametrics", "observability", "cardinality", "timeseries" ], "vendor": "VictoriaMetrics", "dependencies": { "pip": [ "requests>=2.28" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/victoriametrics_cardinality_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/victoriametrics_cardinality_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/victoriametrics_cardinality_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/victoriametrics_cardinality_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/victoriametrics_cardinality_sensor/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-28" }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:victoriametrics" ] }, { "id": "victoriametrics_query_asset", "name": "VictoriaMetrics PromQL Query Asset", "category": "source", "description": "Run a PromQL query against VictoriaMetrics; emit result as Pandas DataFrame.", "path": "assets/sources/victoriametrics_query_asset", "tags": [ "source", "victoriametrics", "timeseries", "promql" ], "vendor": "VictoriaMetrics", "dependencies": { "pip": [ "pandas>=2.0.0", "requests>=2.28.0" ] }, "version": "1.0.0", "author": "Dagster Community", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/victoriametrics_query_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/victoriametrics_query_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/victoriametrics_query_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/victoriametrics_query_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/victoriametrics_query_asset/requirements.txt", "validation": { "level": "live", "last_validated": "2026-05-27", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/victoriametrics.md" }, "agent_hints": { "inputs": "None (root source) \u2014 runs a query against VictoriaMetrics log store.", "outputs": "DataFrame with log/metric rows \u2014 schema depends on the query.", "side_effects": "Requires victoriametrics_resource. Query language is vendor-specific.", "anti_uses": "For streaming logs use a broker-to-database ingest (kafka_to_database_asset). Not for writing.", "requires_resources": [ "victoriametrics_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:victoriametrics" ] }, { "id": "victoriametrics_resource", "name": "VictoriaMetrics Resource", "category": "resource", "description": "VictoriaMetrics connection resource \u2014 Prometheus-compatible time-series DB. Read/write helpers + bearer/basic auth.", "path": "resources/victoriametrics_resource", "tags": [ "resource", "victoriametrics", "timeseries", "prometheus" ], "vendor": "VictoriaMetrics", "dependencies": { "pip": [ "requests>=2.28.0" ] }, "version": "1.0.0", "author": "Dagster Community", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/victoriametrics_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/victoriametrics_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/victoriametrics_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/victoriametrics_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/victoriametrics_resource/requirements.txt", "validation": { "level": "live", "last_validated": "2026-05-27", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/victoriametrics.md" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:victoriametrics" ] }, { "id": "victoriametrics_snapshot_job", "name": "VictoriaMetrics Snapshot Job", "category": "jobs", "description": "Create a VictoriaMetrics snapshot via /snapshot/create as a Dagster job, optionally with retention-based cleanup of older snapshots.", "version": "1.0.0", "author": "Dagster Community", "path": "jobs/victoriametrics_snapshot_job", "tags": [ "job", "victoriametrics", "backup", "snapshot", "timeseries" ], "vendor": "VictoriaMetrics", "dependencies": { "pip": [ "requests>=2.28" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/victoriametrics_snapshot_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/victoriametrics_snapshot_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/victoriametrics_snapshot_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/victoriametrics_snapshot_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/victoriametrics_snapshot_job/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-28" }, "produces": [ "job", "schedule" ], "agent_hints": {}, "consumes": [ "resource:victoriametrics" ] }, { "id": "video_audio_extract_asset", "name": "Video Audio Extract Asset", "category": "transformation", "description": "Extract the audio track from a video file via ffmpeg.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/video_audio_extract_asset", "tags": [ "video-audio-extract-asset", "transforms" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/video_audio_extract_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/video_audio_extract_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/video_audio_extract_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/video_audio_extract_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/video_audio_extract_asset/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "video_frame_extract_asset", "name": "Video Frame Extract Asset", "category": "transformation", "description": "Extract N frames per video as image files; emit a per-frame DataFrame.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/video_frame_extract_asset", "tags": [ "video-frame-extract-asset", "transforms" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/video_frame_extract_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/video_frame_extract_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/video_frame_extract_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/video_frame_extract_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/video_frame_extract_asset/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "video_metadata_extractor", "name": "Video Metadata Extractor", "category": "transformation", "description": "Extract container + stream metadata from video files via ffprobe.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/video_metadata_extractor", "tags": [ "video-metadata-extractor", "transforms" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/video_metadata_extractor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/video_metadata_extractor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/video_metadata_extractor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/video_metadata_extractor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/video_metadata_extractor/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "vif", "name": "Vif", "category": "analytics", "description": "Compute variance inflation factors (VIF) for each feature column to flag multicollinearity.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/vif", "tags": [ "analytics", "stats", "regression", "diagnostics" ], "dependencies": { "pip": [ "pandas", "statsmodels", "numpy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/vif/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/vif/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/vif/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/vif/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/vif/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/analytics.md", "last_validated": "2026-05-08" }, "agent_hints": { "inputs": "DataFrame with numeric feature columns.", "outputs": "DataFrame with Variance Inflation Factor per feature (multicollinearity diagnostic).", "side_effects": "Reduces to one row per feature. Requires statsmodels.", "requires_pip": [ "statsmodels" ], "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "vision_api_asset", "name": "VisionApiAssetComponent", "category": "ai", "description": "Cloud Vision API per-row image analysis. Supports LABEL_DETECTION, OBJECT_LOCALIZATION, FACE_DETECTION, LANDMARK_DETECTION, LOGO_DETECTION, TEXT_DETECTION (basic OCR), DOCUMENT_TEXT_DETECTION, SAFE_SEARCH_DETECTION, IMAGE_PROPERTIES, CROP_HINTS, WEB_DETECTION. For form/table/structured-document parsing, prefer Document AI.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/vision_api_asset", "tags": [ "ai", "vision", "google", "ocr", "image-analysis", "object-detection" ], "dependencies": { "pip": [ "dagster>=1.8.0", "pandas>=1.5.0", "google-cloud-vision>=3.4.0", "google-auth>=2.0.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vision_api_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vision_api_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vision_api_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vision_api_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vision_api_asset/requirements.txt", "component_type": "dagster_component_templates.VisionApiAssetComponent", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/vision_translate.md", "last_validated": "2026-05-08" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame" } }, { "id": "vision_model", "name": "Vision Model", "category": "ai", "description": "Component for image analysis using vision-capable LLMs.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ai/vision_model", "tags": [ "ai", "vision", "model" ], "dependencies": { "pip": [ "openai>=1.0.0", "anthropic>=0.18.0", "pillow>=10.0.0", "pandas>=1.5.0", "requests>=2.31.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vision_model/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vision_model/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vision_model/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vision_model/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/vision_model/requirements.txt", "icon": "Sparkles", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/vision_pipeline.md", "last_validated": "2026-05-11" }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame" } }, { "id": "wandb_asset", "name": "Weights & Biases Asset", "category": "analytics", "description": "Log metrics or upload artifacts to Weights & Biases.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/analytics/wandb_asset", "tags": [ "analytics", "wandb", "asset" ], "dependencies": { "pip": [ "wandb", "sqlalchemy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/wandb_asset/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/wandb_asset/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/wandb_asset/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/wandb_asset/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/wandb_asset/requirements.txt", "icon": "si:weightsandbiases", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": {}, "consumes": [ "resource:wandb" ] }, { "id": "wandb_reader", "name": "W&B Reader", "category": "source", "description": "Component for fetching W&B experiment runs and metrics.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/sources/wandb_reader", "tags": [ "source", "wandb", "reader" ], "dependencies": { "pip": [ "pandas>=1.5.0", "wandb>=0.16.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/wandb_reader/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/wandb_reader/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/wandb_reader/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/wandb_reader/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/sources/wandb_reader/requirements.txt", "icon": "si:weightsandbiases", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root source) \u2014 reads runs / artifacts / metrics from Weights & Biases.", "outputs": "DataFrame of runs or artifact metadata.", "requires_pip": [ "wandb" ], "requires_resources": [ "wandb_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset", "asset_check" ], "consumes": [ "resource:wandb" ] }, { "id": "wandb_resource", "name": "Weights & Biases Resource", "category": "resource", "description": "Register a Weights & Biases resource for experiment tracking", "version": "1.0.0", "author": "Dagster Community", "path": "resources/wandb_resource", "tags": [ "resource", "wandb", "ml", "experiment-tracking" ], "dependencies": { "pip": [ "wandb" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/wandb_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/wandb_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/wandb_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/wandb_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/wandb_resource/requirements.txt", "icon": "si:weightsandbiases", "x-dagster-provides": [ "wandb_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:wandb" ] }, { "id": "warehouse_dedup", "name": "WarehouseDedup", "category": "transformation", "description": "Deduplicate rows in the warehouse via CTAS (ROW_NUMBER or DISTINCT). No Python materialization.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/warehouse_dedup", "tags": [ "transformation", "warehouse", "pushdown", "sql", "ctas", "dedup" ], "dependencies": { "pip": [ "dagster", "sqlalchemy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_dedup/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_dedup/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_dedup/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_dedup/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_dedup/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/warehouse_native_pipeline.md", "last_validated": "2026-05-19" }, "agent_hints": { "inputs": "SQL-side upstream table + connection resource.", "outputs": "Materialized/replaced SQL table (or CTE) \u2014 unique_dedup logic runs INSIDE the warehouse.", "side_effects": "Pushdown: no data leaves the warehouse. Much faster than pandas-based unique_dedup for tables > ~1M rows.", "anti_uses": "For in-memory DataFrames use unique_dedup. Requires database_connection or warehouse-specific resource. Semantics match unique_dedup but syntax is SQL.", "requires_resources": [ "database_connection" ] }, "produces": [ "asset" ] }, { "id": "warehouse_filter", "name": "WarehouseFilter", "category": "transformation", "description": "Filter rows in the warehouse via CTAS (predicate pushdown). No Python materialization.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/warehouse_filter", "tags": [ "transformation", "warehouse", "pushdown", "sql", "ctas", "filter" ], "dependencies": { "pip": [ "dagster", "sqlalchemy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_filter/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_filter/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_filter/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_filter/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_filter/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/warehouse_native_pipeline.md", "last_validated": "2026-05-19" }, "agent_hints": { "inputs": "SQL-side upstream table + connection resource.", "outputs": "Materialized/replaced SQL table (or CTE) \u2014 filter logic runs INSIDE the warehouse.", "side_effects": "Pushdown: no data leaves the warehouse. Much faster than pandas-based filter for tables > ~1M rows.", "anti_uses": "For in-memory DataFrames use filter. Requires database_connection or warehouse-specific resource. Semantics match filter but syntax is SQL.", "requires_resources": [ "database_connection" ] }, "produces": [ "asset" ] }, { "id": "warehouse_formula", "name": "WarehouseFormula", "category": "transformation", "description": "Add/replace columns via inline SQL expressions (CTAS pushdown). Alteryx Formula In-DB equivalent.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/warehouse_formula", "tags": [ "transformation", "warehouse", "pushdown", "sql", "formula", "ctas" ], "dependencies": { "pip": [ "dagster", "sqlalchemy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_formula/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_formula/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_formula/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_formula/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_formula/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/warehouse_native_pipeline.md", "last_validated": "2026-05-19" }, "agent_hints": { "inputs": "SQL-side upstream table + connection resource.", "outputs": "Materialized/replaced SQL table (or CTE) \u2014 formula logic runs INSIDE the warehouse.", "side_effects": "Pushdown: no data leaves the warehouse. Much faster than pandas-based formula for tables > ~1M rows.", "anti_uses": "For in-memory DataFrames use formula. Requires database_connection or warehouse-specific resource. Semantics match formula but syntax is SQL.", "requires_resources": [ "database_connection" ] }, "produces": [ "asset" ] }, { "id": "warehouse_join", "name": "WarehouseJoin", "category": "transformation", "description": "Join two tables in the warehouse via CTAS. No Python materialization.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/warehouse_join", "tags": [ "transformation", "warehouse", "pushdown", "sql", "ctas", "join" ], "dependencies": { "pip": [ "dagster", "sqlalchemy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_join/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_join/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_join/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_join/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_join/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/warehouse_native_pipeline.md", "last_validated": "2026-05-19" }, "agent_hints": { "inputs": "SQL-side upstream table + connection resource.", "outputs": "Materialized/replaced SQL table (or CTE) \u2014 dataframe_join logic runs INSIDE the warehouse.", "side_effects": "Pushdown: no data leaves the warehouse. Much faster than pandas-based dataframe_join for tables > ~1M rows.", "anti_uses": "For in-memory DataFrames use dataframe_join. Requires database_connection or warehouse-specific resource. Semantics match dataframe_join but syntax is SQL.", "requires_resources": [ "database_connection" ] }, "produces": [ "asset" ] }, { "id": "warehouse_maintenance_job", "name": "WarehouseMaintenanceJobComponent", "category": "jobs", "description": "Compound op job: run warehouse maintenance (VACUUM / ANALYZE / REFRESH MATERIALIZED VIEW) across many statements with one schedule.", "version": "1.0.0", "author": "Dagster Community", "path": "jobs/warehouse_maintenance_job", "tags": [ "compound", "job", "warehouse", "maintenance", "sql" ], "dependencies": { "pip": [ "sqlalchemy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/warehouse_maintenance_job/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/warehouse_maintenance_job/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/warehouse_maintenance_job/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/warehouse_maintenance_job/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/warehouse_maintenance_job/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/composition_primitives.md", "last_validated": "2026-05-14" }, "produces": [ "job", "schedule" ], "agent_hints": {} }, { "id": "warehouse_multi_field_formula", "name": "WarehouseMultiFieldFormula", "category": "transformation", "description": "Apply one formula template to N columns via CTAS. Alteryx Multi-Field Formula equivalent.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/warehouse_multi_field_formula", "tags": [ "transformation", "warehouse", "pushdown", "sql", "formula" ], "dependencies": { "pip": [ "dagster", "sqlalchemy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_multi_field_formula/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_multi_field_formula/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_multi_field_formula/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_multi_field_formula/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_multi_field_formula/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/warehouse_native_pipeline.md", "last_validated": "2026-05-19" }, "agent_hints": { "inputs": "SQL-side upstream table + connection resource.", "outputs": "Materialized/replaced SQL table (or CTE) \u2014 multi_field_formula logic runs INSIDE the warehouse.", "side_effects": "Pushdown: no data leaves the warehouse. Much faster than pandas-based multi_field_formula for tables > ~1M rows.", "anti_uses": "For in-memory DataFrames use multi_field_formula. Requires database_connection or warehouse-specific resource. Semantics match multi_field_formula but syntax is SQL.", "requires_resources": [ "database_connection" ] }, "produces": [ "asset" ] }, { "id": "warehouse_multi_row_formula", "name": "WarehouseMultiRowFormula", "category": "transformation", "description": "Row-relative formulas (running totals / LAG/LEAD / ranks) via SQL window functions. Alteryx Multi-Row Formula equivalent.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/warehouse_multi_row_formula", "tags": [ "transformation", "warehouse", "pushdown", "sql", "window-function", "formula" ], "dependencies": { "pip": [ "dagster", "sqlalchemy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_multi_row_formula/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_multi_row_formula/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_multi_row_formula/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_multi_row_formula/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_multi_row_formula/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/warehouse_native_pipeline.md", "last_validated": "2026-05-19" }, "agent_hints": { "inputs": "SQL-side upstream table + connection resource.", "outputs": "Materialized/replaced SQL table (or CTE) \u2014 multi_row_formula logic runs INSIDE the warehouse.", "side_effects": "Pushdown: no data leaves the warehouse. Much faster than pandas-based multi_row_formula for tables > ~1M rows.", "anti_uses": "For in-memory DataFrames use multi_row_formula. Requires database_connection or warehouse-specific resource. Semantics match multi_row_formula but syntax is SQL.", "requires_resources": [ "database_connection" ] }, "produces": [ "asset" ] }, { "id": "warehouse_pipeline", "name": "WarehousePipeline", "category": "transformation", "description": "Multi-step warehouse-native pipeline compiled to one CTAS via CTE chain.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/warehouse_pipeline", "tags": [ "transformation", "warehouse", "pushdown", "sql", "pipeline", "cte" ], "dependencies": { "pip": [ "dagster", "sqlalchemy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_pipeline/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_pipeline/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_pipeline/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_pipeline/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_pipeline/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/warehouse_native_pipeline.md", "last_validated": "2026-05-19" }, "agent_hints": { "inputs": "Multiple upstream tables (list).", "outputs": "A chain of pushdown SQL operations executed as one asset \u2014 like sql_transform but broken into named steps.", "side_effects": "All work stays in the warehouse. Requires database_connection.", "anti_uses": "For a single templated SQL query use sql_transform. For pandas chains use the individual transforms.", "requires_resources": [ "database_connection" ] }, "produces": [ "asset" ] }, { "id": "warehouse_schema_assets", "name": "Warehouse Schema Assets", "category": "analytics", "description": "Create one external Dagster asset per table/view in a database schema.", "path": "assets/analytics/warehouse_schema_assets", "tags": [ "analytics", "warehouse", "schema", "assets" ], "icon": "BarChart2", "type": "dagster_component_templates.WarehouseSchemaAssetsComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/warehouse_schema_assets/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/warehouse_schema_assets/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/warehouse_schema_assets/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/warehouse_schema_assets/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/analytics/warehouse_schema_assets/requirements.txt", "component_type": "dagster_component_templates.WarehouseSchemaAssetsComponent", "validation": { "level": "code", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "sqlalchemy" ] }, "produces": [ "multi_asset" ], "stateful": true, "agent_hints": {} }, { "id": "warehouse_summarize", "name": "WarehouseSummarize", "category": "transformation", "description": "Group + aggregate inside the warehouse (CTAS pushdown). No data into Python.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/warehouse_summarize", "tags": [ "transformation", "warehouse", "pushdown", "sql", "ctas" ], "dependencies": { "pip": [ "dagster", "sqlalchemy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_summarize/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_summarize/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_summarize/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_summarize/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_summarize/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/warehouse_native_pipeline.md", "last_validated": "2026-05-19" }, "agent_hints": { "inputs": "SQL-side upstream table + connection resource.", "outputs": "Materialized/replaced SQL table (or CTE) \u2014 summarize logic runs INSIDE the warehouse.", "side_effects": "Pushdown: no data leaves the warehouse. Much faster than pandas-based summarize for tables > ~1M rows.", "anti_uses": "For in-memory DataFrames use summarize. Requires database_connection or warehouse-specific resource. Semantics match summarize but syntax is SQL.", "requires_resources": [ "database_connection" ] }, "produces": [ "asset" ] }, { "id": "warehouse_top_n_per_group", "name": "WarehouseTopNPerGroup", "category": "transformation", "description": "Top-N-per-group in the warehouse (ROW_NUMBER pushdown). No Python materialization.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/warehouse_top_n_per_group", "tags": [ "transformation", "warehouse", "pushdown", "sql", "ctas", "window-function" ], "dependencies": { "pip": [ "dagster", "sqlalchemy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_top_n_per_group/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_top_n_per_group/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_top_n_per_group/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_top_n_per_group/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_top_n_per_group/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/warehouse_native_pipeline.md", "last_validated": "2026-05-19" }, "agent_hints": { "inputs": "SQL-side upstream table + connection resource.", "outputs": "Materialized/replaced SQL table (or CTE) \u2014 top_n_per_group logic runs INSIDE the warehouse.", "side_effects": "Pushdown: no data leaves the warehouse. Much faster than pandas-based top_n_per_group for tables > ~1M rows.", "anti_uses": "For in-memory DataFrames use top_n_per_group. Requires database_connection or warehouse-specific resource. Semantics match top_n_per_group but syntax is SQL.", "requires_resources": [ "database_connection" ] }, "produces": [ "asset" ] }, { "id": "warehouse_union", "name": "WarehouseUnion", "category": "transformation", "description": "Stack N tables vertically in the warehouse via UNION [ALL]. No Python materialization.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/warehouse_union", "tags": [ "transformation", "warehouse", "pushdown", "sql", "ctas", "union" ], "dependencies": { "pip": [ "dagster", "sqlalchemy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_union/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_union/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_union/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_union/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/warehouse_union/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/warehouse_native_pipeline.md", "last_validated": "2026-05-19" }, "agent_hints": { "inputs": "SQL-side upstream table + connection resource.", "outputs": "Materialized/replaced SQL table (or CTE) \u2014 dataframe_union logic runs INSIDE the warehouse.", "side_effects": "Pushdown: no data leaves the warehouse. Much faster than pandas-based dataframe_union for tables > ~1M rows.", "anti_uses": "For in-memory DataFrames use dataframe_union. Requires database_connection or warehouse-specific resource. Semantics match dataframe_union but syntax is SQL.", "requires_resources": [ "database_connection" ] }, "produces": [ "asset" ] }, { "id": "weaviate_resource", "name": "Weaviate Resource", "category": "resource", "description": "Register a dagster-weaviate WeaviateResource for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/weaviate_resource", "tags": [ "resource", "weaviate", "vector-db", "ai" ], "dependencies": { "pip": [ "dagster-weaviate" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/weaviate_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/weaviate_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/weaviate_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/weaviate_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/weaviate_resource/requirements.txt", "icon": "si:weaviate", "x-dagster-provides": [ "weaviate_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "weighted_average", "name": "Weighted Average", "category": "transformation", "description": "Compute a weighted average of a column, optionally grouped.", "path": "assets/transforms/weighted_average", "tags": [ "transformation", "weighted", "average" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/weighted_average/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/weighted_average/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/weighted_average/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/weighted_average/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/weighted_average/requirements.txt", "icon": "Shuffle", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/transformations.md", "last_validated": "2026-05-14" }, "agent_hints": { "inputs": "DataFrame with a value column + weight column + optional group_by.", "outputs": "DataFrame with weighted-avg per group.", "side_effects": "Reduces to one row per group. Column set changes.", "anti_uses": "For unweighted mean use summarize with agg=mean.", "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas" ] }, "produces": [ "asset", "asset_check" ] }, { "id": "window_calculation", "name": "WindowCalculationComponent", "category": "transformation", "description": "Window functions \u2014 PARTITION BY + ORDER BY + (lag, lead, rank, dense_rank, row_number, cumulative sum, moving avg). The full SQL window-function shape, in pandas.", "version": "1.0.0", "author": "Dagster Community", "path": "transforms/window_calculation", "tags": [ "window", "analytic", "lag", "lead", "rank", "moving-avg" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/window_calculation/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/window_calculation/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/window_calculation/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/window_calculation/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/transforms/window_calculation/requirements.txt", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/window_calculation.md", "last_validated": "2026-05-06" }, "agent_hints": { "inputs": "DataFrame with a numeric column + optional partition/order columns.", "outputs": "DataFrame + new column with the window function result (rolling mean, lag, lead, cumulative sum, etc.).", "side_effects": "Adds one new column. NaNs appear at partition boundaries depending on window function.", "anti_uses": "Config shape: order_by (list of columns), partition_by (optional list), operations=[...]. Each operation dict: {output: , func: , column: (NOT 'col'), periods: N (lag/lead only), window: N (moving_* only)}. Key names are EXACT: `output`, `func`, `column`, `periods`, `window`. Do NOT abbreviate to `col` \u2014 schema requires `column`. For simple pct_change use pct_change instead. For groupwise aggregations use summarize." }, "produces": [ "asset" ] }, { "id": "word_cloud", "name": "Word Cloud", "category": "ai", "description": "Component for building word frequency and TF-IDF tables from text.", "path": "assets/ai/word_cloud", "tags": [ "ai", "word", "cloud" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/word_cloud/schema.json", "component_type": "dagster_component_templates.WordCloudComponent", "icon": "Sparkles", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/word_cloud/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/word_cloud/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/word_cloud/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/word_cloud/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/nlp_utilities.md", "last_validated": "2026-05-08" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "nltk", "scikit-learn" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame" } }, { "id": "workable_ingestion", "name": "Workable Ingestion", "category": "ingestion", "description": "Component for ingesting Workable recruitment pipeline data using dlt.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/workable_ingestion", "tags": [ "ingestion", "workable" ], "dependencies": { "pip": [ "dlt[workable]>=0.4.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/workable_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/workable_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/workable_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/workable_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/workable_ingestion/requirements.txt", "icon": "ArrowUpFromLine", "validation": { "level": "code", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 hits vendor's REST API.", "outputs": "DataFrame with columns from Workable candidates, jobs, hiring stages.", "side_effects": "Read-only. Requires Workable API credentials. Rate-limited per Workable's tier.", "anti_uses": "For generic REST APIs use rest_api_fetcher. For writing back to Workable use its dedicated writer (if available).", "requires_resources": [ "workable_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "workday_resource", "name": "Workday Resource", "category": "resource", "description": "Workday REST API client wrapper (OAuth Client Grant flow).", "path": "resources/workday_resource", "tags": [ "resource", "workday", "hr", "saas" ], "type": "dagster_component_templates.WorkdayResourceComponent", "component_type": "dagster_component_templates.WorkdayResourceComponent", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/workday_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/workday_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/workday_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/workday_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/workday_resource/requirements.txt", "icon": "Briefcase", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/enterprise_saas.md", "last_validated": "2026-05-11" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "requests" ] }, "produces": [ "resource" ], "agent_hints": {} }, { "id": "x12_edi_parser", "name": "X12 Edi Parser", "category": "transformation", "description": "Parse a column of ASC X12 EDI messages into one row per transaction set.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/transforms/x12_edi_parser", "tags": [ "x12-edi-parser", "transforms" ], "dependencies": { "pip": [ "pandas" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/x12_edi_parser/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/x12_edi_parser/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/x12_edi_parser/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/x12_edi_parser/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/x12_edi_parser/requirements.txt", "validation": { "level": "live", "evidence": "", "last_validated": "2026-05-11" }, "produces": [ "asset" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "xml_parser", "name": "XML Parser", "category": "transformation", "description": "Parse XML content in a column into separate fields using XPath expressions.", "path": "assets/transforms/xml_parser", "tags": [ "transformation", "xml", "parser" ], "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/xml_parser/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/xml_parser/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/xml_parser/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/xml_parser/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/xml_parser/requirements.txt", "icon": "Shuffle", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/hn_xml.md", "last_validated": "2026-05-06" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "lxml" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "zendesk_ingestion", "name": "Zendesk Ingestion", "category": "ingestion", "description": "Component for ingesting Zendesk customer support data using dlt.", "version": "1.0.0", "author": "Dagster Community", "path": "assets/ingestion/zendesk_ingestion", "tags": [ "ingestion", "zendesk" ], "dependencies": { "pip": [ "dlt[zendesk]>=0.4.0", "pandas>=1.5.0" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/zendesk_ingestion/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/zendesk_ingestion/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/zendesk_ingestion/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/zendesk_ingestion/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/zendesk_ingestion/requirements.txt", "icon": "si:zendesk", "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/pii_redaction.md", "last_validated": "2026-05-11" }, "agent_hints": { "inputs": "None (root ingestion) \u2014 reads Zendesk tickets/users/orgs via API.", "outputs": "DataFrame with columns from Zendesk API.", "side_effects": "Requires zendesk_resource. Rate-limited.", "requires_resources": [ "zendesk_resource" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ], "consumes": [ "resource:zendesk" ] }, { "id": "zendesk_resource", "name": "Zendesk Resource", "category": "resource", "description": "Register a ZendeskResource wrapping the Zenpy client for use by other components", "version": "1.0.0", "author": "Dagster Community", "path": "resources/zendesk_resource", "tags": [ "resource", "zendesk", "support", "customer-service" ], "dependencies": { "pip": [ "zenpy" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/zendesk_resource/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/zendesk_resource/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/zendesk_resource/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/zendesk_resource/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/zendesk_resource/requirements.txt", "icon": "si:zendesk", "x-dagster-provides": [ "zendesk_resource" ], "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "resource" ], "agent_hints": {}, "consumes": [ "resource:zendesk" ] }, { "id": "zendesk_ticket_sensor", "name": "ZendeskTicketSensor", "category": "sensor", "description": "Trigger a run when Zendesk has new or updated tickets matching a query.", "version": "1.0.0", "author": "Dagster Community", "path": "sensors/zendesk_ticket_sensor", "tags": [ "sensor", "zendesk", "support", "ticket" ], "dependencies": { "pip": [ "requests" ] }, "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/zendesk_ticket_sensor/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/zendesk_ticket_sensor/component.py", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/zendesk_ticket_sensor/schema.json", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/zendesk_ticket_sensor/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/zendesk_ticket_sensor/requirements.txt", "validation": { "level": "code", "last_validated": "2026-05-11" }, "produces": [ "sensor" ], "agent_hints": {}, "consumes": [ "resource:zendesk" ] }, { "id": "zero_shot_classifier", "name": "Zero Shot Classifier", "category": "ai", "description": "Component for zero-shot text classification using HuggingFace transformers.", "path": "assets/ai/zero_shot_classifier", "tags": [ "ai", "zero", "shot", "classifier", "agentic" ], "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/zero_shot_classifier/schema.json", "component_type": "dagster_component_templates.ZeroShotClassifierComponent", "icon": "Sparkles", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/zero_shot_classifier/README.md", "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/zero_shot_classifier/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/zero_shot_classifier/example.yaml", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ai/zero_shot_classifier/requirements.txt", "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/local_nlp.md", "last_validated": "2026-05-08" }, "version": "1.0.0", "author": "Dagster Community", "dependencies": { "pip": [ "dagster", "pandas", "transformers", "torch" ] }, "produces": [ "asset", "asset_check" ], "agent_hints": { "input_type": "pd.DataFrame", "output_type": "pd.DataFrame" } }, { "id": "qlik_replicate_resource", "name": "Qlik Replicate Resource", "component_type": "dagster_community_components.QlikReplicateResourceComponent", "path": "resources/qlik_replicate_resource", "category": "resource", "icon": "Server", "description": "Shared Qlik Enterprise Manager REST API connection (base URL + auth). Supports session-based (username/password) auth for dev and API-token auth for production. Pairs with qlik_replicate_task_trigger_job (control), qlik_replicate_task_status_sensor (event-drive), and qlik_replicate_task_metrics_ingestion (observability).", "tags": [ "resource", "qlik", "replicate", "cdc", "rest-api" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/qlik_replicate_resource/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/qlik_replicate_resource/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/qlik_replicate_resource/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/qlik_replicate_resource/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/qlik_replicate_resource/schema.json", "dependencies": { "pip": [ "requests>=2.28.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/qlik_replicate.md", "last_validated": "2026-07-10" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "outputs": [ "qlik_replicate_resource_key" ], "chains_with": [ "qlik_replicate_task_trigger_job", "qlik_replicate_task_status_sensor", "qlik_replicate_task_metrics_ingestion" ], "requires_pip": [ "requests" ], "anti_uses": "Do not use for Fivetran, Airbyte, or dagster-native replication \u2014 those have dedicated components. Use only when the customer already runs Qlik Enterprise Manager as their Replicate control plane." }, "produces": [ "resource" ] }, { "id": "qlik_replicate_task_trigger_job", "name": "Qlik Replicate Task Trigger Job", "component_type": "dagster_community_components.QlikReplicateTaskTriggerJobComponent", "path": "jobs/qlik_replicate_task_trigger_job", "category": "job", "icon": "PlayArrow", "description": "Trigger a Qlik Replicate task (run/stop/reload) via the Enterprise Manager REST API. Wraps a Dagster job around a single Replicate control-plane call. For continuous CDC use wait_for_completion=false; for one-shot migrations set true so the job waits for terminal state.", "tags": [ "job", "qlik", "replicate", "cdc", "trigger" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/qlik_replicate_task_trigger_job/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/qlik_replicate_task_trigger_job/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/qlik_replicate_task_trigger_job/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/qlik_replicate_task_trigger_job/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/qlik_replicate_task_trigger_job/schema.json", "dependencies": { "pip": [ "requests>=2.28.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/qlik_replicate.md", "last_validated": "2026-07-10" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "inputs": [ "qlik_replicate_resource_key" ], "outputs": [ "qlik_replicate_job_name" ], "requires_resources": [ "qlik_replicate_resource" ], "requires_pip": [ "requests" ], "chains_with": [ "qlik_replicate_task_status_sensor" ] }, "produces": [ "job", "schedule" ] }, { "id": "qlik_replicate_task_status_sensor", "name": "Qlik Replicate Task Status Sensor", "component_type": "dagster_community_components.QlikReplicateTaskStatusSensorComponent", "path": "sensors/qlik_replicate_task_status_sensor", "category": "sensor", "icon": "Bolt", "description": "Poll a Qlik Replicate task's state via Enterprise Manager REST API; trigger a Dagster job on any transition into a target state (default STOPPED). Event-driven pattern for chaining downstream work off Replicate task completion or failure.", "tags": [ "sensor", "qlik", "replicate", "cdc", "event-driven" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/qlik_replicate_task_status_sensor/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/qlik_replicate_task_status_sensor/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/qlik_replicate_task_status_sensor/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/qlik_replicate_task_status_sensor/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/qlik_replicate_task_status_sensor/schema.json", "dependencies": { "pip": [ "requests>=2.28.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/qlik_replicate.md", "last_validated": "2026-07-10" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "inputs": [ "qlik_replicate_resource_key", "downstream_job_name" ], "requires_resources": [ "qlik_replicate_resource" ], "requires_pip": [ "requests" ], "chains_with": [ "qlik_replicate_task_trigger_job" ] }, "produces": [ "sensor" ] }, { "id": "qlik_replicate_task_metrics_ingestion", "name": "Qlik Replicate Task Metrics Ingestion", "component_type": "dagster_community_components.QlikReplicateTaskMetricsIngestionComponent", "path": "assets/ingestion/qlik_replicate_task_metrics_ingestion", "category": "ingestion", "icon": "TableChart", "description": "Poll Qlik Enterprise Manager for per-task metrics (state, latency, throughput, error count) and emit a DataFrame asset. One row per task per materialization. Foundation for CDC observability dashboards and alert-input assets.", "tags": [ "ingestion", "qlik", "replicate", "cdc", "observability", "metrics" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/qlik_replicate_task_metrics_ingestion/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/qlik_replicate_task_metrics_ingestion/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/qlik_replicate_task_metrics_ingestion/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/qlik_replicate_task_metrics_ingestion/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/qlik_replicate_task_metrics_ingestion/schema.json", "dependencies": { "pip": [ "pandas>=2.0.0", "requests>=2.28.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/qlik_replicate.md", "last_validated": "2026-07-10" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "inputs": [ "qlik_replicate_resource_key" ], "outputs": [ "qlik_task_metrics_dataframe" ], "requires_resources": [ "qlik_replicate_resource" ], "requires_pip": [ "pandas", "requests" ], "chains_with": [ "dataframe_to_pagerduty", "dataframe_to_snowflake", "dataframe_to_prometheus" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "qlik_replicate_workspace", "name": "Qlik Replicate Workspace", "component_type": "dagster_community_components.QlikReplicateWorkspaceComponent", "path": "integrations/qlik_replicate_workspace", "category": "integration", "icon": "AccountTree", "description": "Auto-emit one Dagster asset per Qlik Replicate task by enumerating the workspace via the Qlik Enterprise Manager REST API. StateBackedComponent \u2014 discovery is cached to disk and refreshed on explicit trigger. Materializing an asset triggers the underlying task (run / reload / stop) and polls to completion. The workspace-shape peer of the four low-level qlik_replicate_* components \u2014 use this when you want one YAML instead of one-per-task.", "tags": [ "integration", "qlik", "replicate", "cdc", "workspace", "auto-discovery", "state-backed" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/qlik_replicate_workspace/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/qlik_replicate_workspace/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/qlik_replicate_workspace/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/qlik_replicate_workspace/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/qlik_replicate_workspace/schema.json", "dependencies": { "pip": [ "requests>=2.28.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/qlik_replicate.md", "last_validated": "2026-07-10" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "outputs": [ "one_asset_per_qlik_replicate_task" ], "requires_pip": [ "requests" ], "chains_with": [ "qlik_replicate_task_status_sensor" ], "anti_uses": "Do not use alongside per-task qlik_replicate_task_trigger_job unless a specific task needs bespoke config outside the workspace defaults. This workspace already emits per-task assets." }, "produces": [ "multi_asset" ], "stateful": true }, { "id": "tm1_resource", "name": "TM1 Resource", "component_type": "dagster_community_components.TM1ResourceComponent", "path": "resources/tm1_resource", "category": "resource", "icon": "Server", "description": "Shared IBM Planning Analytics (TM1) REST API connection (base URL + auth). Supports basic auth for native TM1 users and CAM auth for Cognos-backed enterprise deployments. Pairs with tm1_process_trigger_job / tm1_process_status_sensor / tm1_cube_data_ingestion / tm1_workspace.", "tags": [ "resource", "tm1", "ibm", "planning-analytics", "cognos", "rest-api" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/tm1_resource/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/tm1_resource/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/tm1_resource/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/tm1_resource/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/tm1_resource/schema.json", "dependencies": { "pip": [ "requests>=2.28.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/tm1.md", "last_validated": "2026-07-10" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "outputs": [ "tm1_resource_key" ], "chains_with": [ "tm1_process_trigger_job", "tm1_process_status_sensor", "tm1_cube_data_ingestion", "tm1_workspace" ], "requires_pip": [ "requests" ], "anti_uses": "Do not use for Cognos Analytics BI (dashboards / reports). Use cognos_resource for that. TM1 is the planning-cube side." }, "produces": [ "resource" ] }, { "id": "tm1_process_trigger_job", "name": "TM1 Process Trigger Job", "component_type": "dagster_community_components.TM1ProcessTriggerJobComponent", "path": "jobs/tm1_process_trigger_job", "category": "job", "icon": "PlayArrow", "description": "Trigger a TM1 TI process or chore via the TM1 REST API. Wraps a Dagster job around ExecuteProcess with optional parameter overrides. Use for scheduled data loads, mid-DAG process invocation, and one-off admin runs.", "tags": [ "job", "tm1", "ibm", "planning-analytics", "trigger" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/tm1_process_trigger_job/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/tm1_process_trigger_job/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/tm1_process_trigger_job/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/tm1_process_trigger_job/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/tm1_process_trigger_job/schema.json", "dependencies": { "pip": [ "requests>=2.28.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/tm1.md", "last_validated": "2026-07-10" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "inputs": [ "tm1_resource_key" ], "outputs": [ "tm1_job_name" ], "requires_resources": [ "tm1_resource" ], "requires_pip": [ "requests" ], "chains_with": [ "tm1_process_status_sensor" ] }, "produces": [ "job", "schedule" ] }, { "id": "tm1_process_status_sensor", "name": "TM1 Process Status Sensor", "component_type": "dagster_community_components.TM1ProcessStatusSensorComponent", "path": "sensors/tm1_process_status_sensor", "category": "sensor", "icon": "Bolt", "description": "Poll a TM1 TI process's execution status via REST; trigger a Dagster job on transitions into target statuses (CompletedSuccessfully / HasMinorErrors / Aborted / QuitCalled). Event-driven pattern; cursor-deduped so downstream fires once per execution.", "tags": [ "sensor", "tm1", "ibm", "planning-analytics", "event-driven" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/tm1_process_status_sensor/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/tm1_process_status_sensor/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/tm1_process_status_sensor/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/tm1_process_status_sensor/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/tm1_process_status_sensor/schema.json", "dependencies": { "pip": [ "requests>=2.28.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/tm1.md", "last_validated": "2026-07-10" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "inputs": [ "tm1_resource_key", "downstream_job_name" ], "requires_resources": [ "tm1_resource" ], "requires_pip": [ "requests" ], "chains_with": [ "tm1_process_trigger_job" ] }, "produces": [ "sensor" ] }, { "id": "tm1_cube_data_ingestion", "name": "TM1 Cube Data Ingestion", "component_type": "dagster_community_components.TM1CubeDataIngestionComponent", "path": "assets/ingestion/tm1_cube_data_ingestion", "category": "ingestion", "icon": "TableChart", "description": "Materialize a TM1 cube slice via MDX as a Dagster DataFrame. Two modes: explicit MDX or simplified cube + row/column dimensions + filters. Foundation for TM1 \u2192 warehouse / dbt / dashboards pipelines.", "tags": [ "ingestion", "tm1", "ibm", "planning-analytics", "mdx", "cube" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/tm1_cube_data_ingestion/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/tm1_cube_data_ingestion/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/tm1_cube_data_ingestion/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/tm1_cube_data_ingestion/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/tm1_cube_data_ingestion/schema.json", "dependencies": { "pip": [ "pandas>=2.0.0", "requests>=2.28.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/tm1.md", "last_validated": "2026-07-10" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "inputs": [ "tm1_resource_key" ], "outputs": [ "tm1_cube_dataframe" ], "requires_resources": [ "tm1_resource" ], "requires_pip": [ "pandas", "requests" ], "chains_with": [ "dataframe_to_snowflake", "dataframe_to_bigquery", "pct_change", "top_n_per_group" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "tm1_workspace", "name": "TM1 Workspace", "component_type": "dagster_community_components.TM1WorkspaceComponent", "path": "integrations/tm1_workspace", "category": "ingestion", "icon": "AccountTree", "description": "Auto-emit one Dagster asset per TM1 Cube / Process / Chore by enumerating via the TM1 REST API. StateBackedComponent \u2014 discovery cached to disk, refreshed on explicit trigger. Materializing Process/Chore assets executes them; Cube assets are observational (use tm1_cube_data_ingestion for actual data). The workspace-shape peer of tm1_process_trigger_job / tm1_process_status_sensor / tm1_cube_data_ingestion.", "tags": [ "integration", "tm1", "ibm", "planning-analytics", "workspace", "auto-discovery", "state-backed" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/tm1_workspace/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/tm1_workspace/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/tm1_workspace/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/tm1_workspace/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/tm1_workspace/schema.json", "dependencies": { "pip": [ "requests>=2.28.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/tm1.md", "last_validated": "2026-07-10" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "outputs": [ "one_asset_per_tm1_object" ], "requires_pip": [ "requests" ], "chains_with": [ "tm1_cube_data_ingestion", "tm1_process_status_sensor" ], "anti_uses": "Do not use alongside per-object tm1_process_trigger_job unless a specific object needs bespoke config outside the workspace defaults." }, "produces": [ "multi_asset" ], "stateful": true }, { "id": "qlik_compose_resource", "name": "Qlik Compose Resource", "component_type": "dagster_community_components.QlikComposeResourceComponent", "path": "resources/qlik_compose_resource", "category": "resource", "icon": "Server", "description": "Shared Qlik Compose REST API connection. Qlik Compose is the data-warehouse automation tool in the Qlik Data Integration platform. Pairs with qlik_compose_workflow_trigger_job / qlik_compose_workflow_status_sensor / qlik_compose_workflow_metrics_ingestion / qlik_compose_workspace.", "tags": [ "resource", "qlik", "compose", "data-warehouse-automation", "rest-api" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/qlik_compose_resource/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/qlik_compose_resource/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/qlik_compose_resource/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/qlik_compose_resource/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/qlik_compose_resource/schema.json", "dependencies": { "pip": [ "requests>=2.28.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/qlik_compose.md", "last_validated": "2026-07-10" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "outputs": [ "qlik_compose_resource_key" ], "chains_with": [ "qlik_compose_workflow_trigger_job", "qlik_compose_workflow_status_sensor", "qlik_compose_workflow_metrics_ingestion", "qlik_compose_workspace" ], "requires_pip": [ "requests" ], "anti_uses": "Do not use for Qlik Replicate \u2014 that's a separate integration (qlik_replicate_resource). Compose is the DW automation on top of what Replicate lands." }, "produces": [ "resource" ] }, { "id": "qlik_compose_workflow_trigger_job", "name": "Qlik Compose Workflow Trigger Job", "component_type": "dagster_community_components.QlikComposeWorkflowTriggerJobComponent", "path": "jobs/qlik_compose_workflow_trigger_job", "category": "job", "icon": "PlayArrow", "description": "Trigger a Qlik Compose workflow via the Compose REST API. Wraps a Dagster job around a run/stop action with optional wait_for_completion polling to terminal state (COMPLETED / STOPPED / ERROR / FAILED).", "tags": [ "job", "qlik", "compose", "data-warehouse-automation", "trigger" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/qlik_compose_workflow_trigger_job/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/qlik_compose_workflow_trigger_job/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/qlik_compose_workflow_trigger_job/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/qlik_compose_workflow_trigger_job/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/qlik_compose_workflow_trigger_job/schema.json", "dependencies": { "pip": [ "requests>=2.28.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/qlik_compose.md", "last_validated": "2026-07-10" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "inputs": [ "qlik_compose_resource_key" ], "outputs": [ "qlik_compose_job_name" ], "requires_resources": [ "qlik_compose_resource" ], "requires_pip": [ "requests" ], "chains_with": [ "qlik_compose_workflow_status_sensor" ] }, "produces": [ "job", "schedule" ] }, { "id": "qlik_compose_workflow_status_sensor", "name": "Qlik Compose Workflow Status Sensor", "component_type": "dagster_community_components.QlikComposeWorkflowStatusSensorComponent", "path": "sensors/qlik_compose_workflow_status_sensor", "category": "sensor", "icon": "Bolt", "description": "Poll a Qlik Compose workflow's state; trigger a Dagster job on transitions into target states (COMPLETED / ERROR / FAILED / STOPPED). Cursor-deduped so downstream fires once per completion.", "tags": [ "sensor", "qlik", "compose", "event-driven" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/qlik_compose_workflow_status_sensor/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/qlik_compose_workflow_status_sensor/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/qlik_compose_workflow_status_sensor/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/qlik_compose_workflow_status_sensor/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/qlik_compose_workflow_status_sensor/schema.json", "dependencies": { "pip": [ "requests>=2.28.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/qlik_compose.md", "last_validated": "2026-07-10" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "inputs": [ "qlik_compose_resource_key", "downstream_job_name" ], "requires_resources": [ "qlik_compose_resource" ], "requires_pip": [ "requests" ], "chains_with": [ "qlik_compose_workflow_trigger_job" ] }, "produces": [ "sensor" ] }, { "id": "qlik_compose_workflow_metrics_ingestion", "name": "Qlik Compose Workflow Metrics Ingestion", "component_type": "dagster_community_components.QlikComposeWorkflowMetricsIngestionComponent", "path": "assets/ingestion/qlik_compose_workflow_metrics_ingestion", "category": "ingestion", "icon": "TableChart", "description": "Emit a DataFrame with per-workflow metrics from Qlik Compose (state, last-run duration, rows loaded, error count). One row per workflow per materialization. Foundation for DW-build observability dashboards.", "tags": [ "ingestion", "qlik", "compose", "observability", "metrics" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/qlik_compose_workflow_metrics_ingestion/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/qlik_compose_workflow_metrics_ingestion/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/qlik_compose_workflow_metrics_ingestion/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/qlik_compose_workflow_metrics_ingestion/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/qlik_compose_workflow_metrics_ingestion/schema.json", "dependencies": { "pip": [ "pandas>=2.0.0", "requests>=2.28.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/qlik_compose.md", "last_validated": "2026-07-10" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "inputs": [ "qlik_compose_resource_key" ], "outputs": [ "qlik_compose_metrics_dataframe" ], "requires_resources": [ "qlik_compose_resource" ], "requires_pip": [ "pandas", "requests" ], "chains_with": [ "dataframe_to_snowflake", "dataframe_to_prometheus", "dataframe_to_pagerduty" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "qlik_compose_workspace", "name": "Qlik Compose Workspace", "component_type": "dagster_community_components.QlikComposeWorkspaceComponent", "path": "integrations/qlik_compose_workspace", "category": "integration", "icon": "AccountTree", "description": "Auto-emit one Dagster asset per Qlik Compose Workflow / Data Mart across every Project (Data Warehouse). StateBackedComponent \u2014 discovery cached to disk. Materializing a Workflow asset runs the workflow to terminal state; Data Mart assets are observational. The workspace-shape peer of the qlik_compose_* low-level components.", "tags": [ "integration", "qlik", "compose", "workspace", "auto-discovery", "state-backed" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/qlik_compose_workspace/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/qlik_compose_workspace/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/qlik_compose_workspace/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/qlik_compose_workspace/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/qlik_compose_workspace/schema.json", "dependencies": { "pip": [ "requests>=2.28.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/qlik_compose.md", "last_validated": "2026-07-10" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "outputs": [ "one_asset_per_qlik_compose_workflow_and_data_mart" ], "requires_pip": [ "requests" ], "chains_with": [ "qlik_compose_workflow_status_sensor" ], "anti_uses": "Do not use alongside per-workflow qlik_compose_workflow_trigger_job unless a specific workflow needs bespoke config outside the workspace defaults." }, "produces": [ "multi_asset" ], "stateful": true }, { "id": "jde_orchestrator_resource", "name": "JDE Orchestrator Resource", "component_type": "dagster_community_components.JDEOrchestratorResourceComponent", "path": "resources/jde_orchestrator_resource", "category": "resource", "icon": "Server", "description": "Shared JD Edwards EnterpriseOne Orchestrator REST API connection. Orchestrator is Oracle's low-code automation for JDE \u2014 composes Business Functions, Data Services, and Interop Services into REST-triggerable orchestrations. Pairs with jde_orchestration_trigger_job / jde_orchestration_status_sensor / jde_orchestration_output_ingestion / jde_orchestrator_workspace.", "tags": [ "resource", "jde", "jd-edwards", "orchestrator", "erp", "rest-api" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/jde_orchestrator_resource/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/jde_orchestrator_resource/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/jde_orchestrator_resource/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/jde_orchestrator_resource/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/jde_orchestrator_resource/schema.json", "dependencies": { "pip": [ "requests>=2.28.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/jde.md", "last_validated": "2026-07-10" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "outputs": [ "jde_orchestrator_resource_key" ], "chains_with": [ "jde_orchestration_trigger_job", "jde_orchestration_status_sensor", "jde_orchestration_output_ingestion", "jde_orchestrator_workspace" ], "requires_pip": [ "requests" ], "anti_uses": "Do not use for Oracle EBS, PeopleSoft, or Fusion Apps \u2014 those are separate ERPs. JDE = JD Edwards EnterpriseOne." }, "produces": [ "resource" ] }, { "id": "jde_orchestration_trigger_job", "name": "JDE Orchestration Trigger Job", "component_type": "dagster_community_components.JDEOrchestrationTriggerJobComponent", "path": "jobs/jde_orchestration_trigger_job", "category": "job", "icon": "PlayArrow", "description": "Trigger a JDE Orchestrator orchestration via REST. Supports sync + async modes with input parameter overrides; async_mode polls the jobId to terminal state (SUCCESS / COMPLETED / FAILED / ERROR / CANCELED).", "tags": [ "job", "jde", "jd-edwards", "orchestrator", "trigger" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/jde_orchestration_trigger_job/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/jde_orchestration_trigger_job/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/jde_orchestration_trigger_job/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/jde_orchestration_trigger_job/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/jde_orchestration_trigger_job/schema.json", "dependencies": { "pip": [ "requests>=2.28.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/jde.md", "last_validated": "2026-07-10" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "inputs": [ "jde_orchestrator_resource_key" ], "outputs": [ "jde_job_name" ], "requires_resources": [ "jde_orchestrator_resource" ], "requires_pip": [ "requests" ], "chains_with": [ "jde_orchestration_status_sensor" ] }, "produces": [ "job", "schedule" ] }, { "id": "jde_orchestration_status_sensor", "name": "JDE Orchestration Status Sensor", "component_type": "dagster_community_components.JDEOrchestrationStatusSensorComponent", "path": "sensors/jde_orchestration_status_sensor", "category": "sensor", "icon": "Bolt", "description": "Poll a JDE orchestration's last-run status via /history?limit=1; trigger a Dagster job on transitions into target states (SUCCESS / COMPLETED / FAILED / ERROR / CANCELED). Cursor-deduped on (state, jobId).", "tags": [ "sensor", "jde", "jd-edwards", "orchestrator", "event-driven" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/jde_orchestration_status_sensor/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/jde_orchestration_status_sensor/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/jde_orchestration_status_sensor/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/jde_orchestration_status_sensor/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/jde_orchestration_status_sensor/schema.json", "dependencies": { "pip": [ "requests>=2.28.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/jde.md", "last_validated": "2026-07-10" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "inputs": [ "jde_orchestrator_resource_key", "downstream_job_name" ], "requires_resources": [ "jde_orchestrator_resource" ], "requires_pip": [ "requests" ], "chains_with": [ "jde_orchestration_trigger_job" ] }, "produces": [ "sensor" ] }, { "id": "jde_orchestration_output_ingestion", "name": "JDE Orchestration Output Ingestion", "component_type": "dagster_community_components.JDEOrchestrationOutputIngestionComponent", "path": "assets/ingestion/jde_orchestration_output_ingestion", "category": "ingestion", "icon": "TableChart", "description": "Execute a JDE orchestration and emit its row-list output as a Dagster DataFrame. Foundation for JDE \u2192 warehouse pipelines. Handles both flat-list and nested (ServiceRequest1.RowSet) response shapes via output_field.", "tags": [ "ingestion", "jde", "jd-edwards", "orchestrator" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/jde_orchestration_output_ingestion/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/jde_orchestration_output_ingestion/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/jde_orchestration_output_ingestion/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/jde_orchestration_output_ingestion/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/jde_orchestration_output_ingestion/schema.json", "dependencies": { "pip": [ "pandas>=2.0.0", "requests>=2.28.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/jde.md", "last_validated": "2026-07-10" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "inputs": [ "jde_orchestrator_resource_key" ], "outputs": [ "jde_orchestration_output_dataframe" ], "requires_resources": [ "jde_orchestrator_resource" ], "requires_pip": [ "pandas", "requests" ], "chains_with": [ "dataframe_to_snowflake", "dataframe_to_bigquery", "filter", "summarize" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "jde_orchestrator_workspace", "name": "JDE Orchestrator Workspace", "component_type": "dagster_community_components.JDEOrchestratorWorkspaceComponent", "path": "integrations/jde_orchestrator_workspace", "category": "integration", "icon": "AccountTree", "description": "Auto-emit one Dagster asset per JDE orchestration via the Orchestrator REST API. StateBackedComponent \u2014 discovery cached to disk, refreshed on explicit trigger. Materializing an asset executes the orchestration (sync or async) and polls to terminal state. The workspace-shape peer of the jde_orchestrator_* low-level components.", "tags": [ "integration", "jde", "jd-edwards", "orchestrator", "workspace", "auto-discovery", "state-backed" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/jde_orchestrator_workspace/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/jde_orchestrator_workspace/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/jde_orchestrator_workspace/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/jde_orchestrator_workspace/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/jde_orchestrator_workspace/schema.json", "dependencies": { "pip": [ "requests>=2.28.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/jde.md", "last_validated": "2026-07-10" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "outputs": [ "one_asset_per_jde_orchestration" ], "requires_pip": [ "requests" ], "chains_with": [ "jde_orchestration_status_sensor" ], "anti_uses": "Do not use alongside per-orchestration jde_orchestration_trigger_job unless a specific orchestration needs bespoke config outside the workspace defaults." }, "produces": [ "multi_asset" ], "stateful": true }, { "id": "cognos_resource", "name": "Cognos Resource", "component_type": "dagster_community_components.CognosResourceComponent", "path": "resources/cognos_resource", "category": "resource", "icon": "Server", "description": "Shared IBM Cognos Analytics REST API connection. Session-based auth with a security namespace (LDAP / CognosEx). Pairs with cognos_report_run_job / cognos_report_status_sensor / cognos_report_data_ingestion / cognos_workspace.", "tags": [ "resource", "cognos", "ibm", "bi", "reports", "rest-api" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/cognos_resource/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/cognos_resource/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/cognos_resource/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/cognos_resource/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/resources/cognos_resource/schema.json", "dependencies": { "pip": [ "requests>=2.28.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/cognos.md", "last_validated": "2026-07-10" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "outputs": [ "cognos_resource_key" ], "chains_with": [ "cognos_report_run_job", "cognos_report_status_sensor", "cognos_report_data_ingestion", "cognos_workspace" ], "requires_pip": [ "requests" ], "anti_uses": "Do not use for TM1 (Planning Analytics). TM1 is the planning-cube side; Cognos Analytics is BI reports." }, "produces": [ "resource" ] }, { "id": "cognos_report_run_job", "name": "Cognos Report Run Job", "component_type": "dagster_community_components.CognosReportRunJobComponent", "path": "jobs/cognos_report_run_job", "category": "job", "icon": "PlayArrow", "description": "Trigger a Cognos Analytics report run via REST. Supports multiple output formats (PDF/HTML/CSV/XLSX/XML/JSON) and parameter overrides.", "tags": [ "job", "cognos", "ibm", "bi", "reports", "trigger" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/cognos_report_run_job/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/cognos_report_run_job/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/cognos_report_run_job/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/cognos_report_run_job/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/jobs/cognos_report_run_job/schema.json", "dependencies": { "pip": [ "requests>=2.28.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/cognos.md", "last_validated": "2026-07-10" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "inputs": [ "cognos_resource_key" ], "outputs": [ "cognos_job_name" ], "requires_resources": [ "cognos_resource" ], "requires_pip": [ "requests" ], "chains_with": [ "cognos_report_status_sensor" ] }, "produces": [ "job", "schedule" ] }, { "id": "cognos_report_status_sensor", "name": "Cognos Report Status Sensor", "component_type": "dagster_community_components.CognosReportStatusSensorComponent", "path": "sensors/cognos_report_status_sensor", "category": "sensor", "icon": "Bolt", "description": "Poll a Cognos report's last-run status; trigger a Dagster job on transitions into target statuses (COMPLETED / SUCCEEDED / FAILED). Cursor-deduped on (status, run_id).", "tags": [ "sensor", "cognos", "ibm", "bi", "event-driven" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/cognos_report_status_sensor/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/cognos_report_status_sensor/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/cognos_report_status_sensor/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/cognos_report_status_sensor/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/sensors/cognos_report_status_sensor/schema.json", "dependencies": { "pip": [ "requests>=2.28.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/cognos.md", "last_validated": "2026-07-10" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "inputs": [ "cognos_resource_key", "downstream_job_name" ], "requires_resources": [ "cognos_resource" ], "requires_pip": [ "requests" ], "chains_with": [ "cognos_report_run_job" ] }, "produces": [ "sensor" ] }, { "id": "cognos_report_data_ingestion", "name": "Cognos Report Data Ingestion", "component_type": "dagster_community_components.CognosReportDataIngestionComponent", "path": "assets/ingestion/cognos_report_data_ingestion", "category": "ingestion", "icon": "TableChart", "description": "Run a Cognos report in CSV or JSON format and materialize the result as a Dagster DataFrame. Foundation for Cognos \u2192 warehouse / dbt pipelines.", "tags": [ "ingestion", "cognos", "ibm", "bi", "reports" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/cognos_report_data_ingestion/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/cognos_report_data_ingestion/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/cognos_report_data_ingestion/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/cognos_report_data_ingestion/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/ingestion/cognos_report_data_ingestion/schema.json", "dependencies": { "pip": [ "pandas>=2.0.0", "requests>=2.28.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/cognos.md", "last_validated": "2026-07-10" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "inputs": [ "cognos_resource_key" ], "outputs": [ "cognos_report_dataframe" ], "requires_resources": [ "cognos_resource" ], "requires_pip": [ "pandas", "requests" ], "chains_with": [ "dataframe_to_snowflake", "dataframe_to_bigquery", "filter", "summarize" ], "output_type": "pd.DataFrame" }, "produces": [ "asset" ] }, { "id": "cognos_workspace", "name": "Cognos Workspace", "component_type": "dagster_community_components.CognosWorkspaceComponent", "path": "integrations/cognos_workspace", "category": "ingestion", "icon": "AccountTree", "description": "Auto-emit one Dagster asset per Cognos Analytics report by enumerating reports in the specified folders via the Cognos REST API. StateBackedComponent \u2014 discovery cached to disk. Materializing an asset runs the underlying report. The workspace-shape peer of the cognos_* low-level components.", "tags": [ "integration", "cognos", "ibm", "bi", "workspace", "auto-discovery", "state-backed" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/cognos_workspace/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/cognos_workspace/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/cognos_workspace/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/cognos_workspace/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/cognos_workspace/schema.json", "dependencies": { "pip": [ "requests>=2.28.0" ] }, "validation": { "level": "live", "evidence": "https://github.com/eric-thomas-dagster/dagster-community-components-cli/blob/main/examples/cognos.md", "last_validated": "2026-07-10" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "outputs": [ "one_asset_per_cognos_report" ], "requires_pip": [ "requests" ], "chains_with": [ "cognos_report_status_sensor" ], "anti_uses": "Do not use alongside per-report cognos_report_run_job unless a specific report needs bespoke parameter overrides." }, "produces": [ "multi_asset" ], "stateful": true }, { "id": "salesforce_workspace", "name": "Salesforce Workspace", "component_type": "dagster_community_components.SalesforceWorkspaceComponent", "path": "integrations/salesforce_workspace", "category": "ingestion", "icon": "AccountTree", "description": "Auto-emit one Dagster asset per Salesforce SObject by enumerating /sobjects. StateBackedComponent \u2014 discovery cached to disk. Materializing an asset runs a SOQL SELECT FIELDS(STANDARD) query and emits the result as a DataFrame. Workspace-shape peer of salesforce_ingestion.", "tags": [ "integration", "salesforce", "crm", "workspace", "auto-discovery", "state-backed" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/salesforce_workspace/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/salesforce_workspace/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/salesforce_workspace/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/salesforce_workspace/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/salesforce_workspace/schema.json", "dependencies": { "pip": [ "pandas>=2.0.0", "requests>=2.28.0" ] }, "validation": { "level": "code" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "outputs": [ "one_asset_per_salesforce_sobject" ], "requires_pip": [ "pandas", "requests" ], "chains_with": [ "dataframe_to_snowflake", "dataframe_to_bigquery" ], "output_type": "pd.DataFrame" }, "produces": [ "multi_asset" ], "stateful": true, "consumes": [ "resource:salesforce" ] }, { "id": "hubspot_workspace", "name": "HubSpot Workspace", "component_type": "dagster_community_components.HubSpotWorkspaceComponent", "path": "integrations/hubspot_workspace", "category": "ingestion", "icon": "AccountTree", "description": "Auto-emit one Dagster asset per HubSpot CRM object (contacts / companies / deals / tickets / products / line_items + custom objects). StateBackedComponent \u2014 discovery cached to disk. Materializing an asset fetches recent records via /crm/v3/objects/.", "tags": [ "integration", "hubspot", "crm", "workspace", "auto-discovery", "state-backed" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/hubspot_workspace/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/hubspot_workspace/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/hubspot_workspace/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/hubspot_workspace/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/hubspot_workspace/schema.json", "dependencies": { "pip": [ "pandas>=2.0.0", "requests>=2.28.0" ] }, "validation": { "level": "code" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "outputs": [ "one_asset_per_hubspot_object" ], "requires_pip": [ "pandas", "requests" ], "chains_with": [ "dataframe_to_snowflake", "dataframe_to_bigquery" ], "output_type": "pd.DataFrame" }, "produces": [ "multi_asset" ], "stateful": true, "consumes": [ "resource:hubspot" ] }, { "id": "jira_workspace", "name": "Jira Workspace", "component_type": "dagster_community_components.JiraWorkspaceComponent", "path": "integrations/jira_workspace", "category": "ingestion", "icon": "AccountTree", "description": "Auto-emit one Dagster asset per Jira project. StateBackedComponent \u2014 discovery cached to disk. Materializing an asset runs a JQL query in that project and emits issues as a DataFrame. Configurable jql_template lets you scope by time / status / labels.", "tags": [ "integration", "jira", "atlassian", "workspace", "auto-discovery", "state-backed" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/jira_workspace/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/jira_workspace/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/jira_workspace/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/jira_workspace/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/jira_workspace/schema.json", "dependencies": { "pip": [ "pandas>=2.0.0", "requests>=2.28.0" ] }, "validation": { "level": "code" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "outputs": [ "one_asset_per_jira_project" ], "requires_pip": [ "pandas", "requests" ], "chains_with": [ "dataframe_to_snowflake", "dataframe_to_bigquery", "jira_issue_sensor" ], "output_type": "pd.DataFrame" }, "produces": [ "multi_asset" ], "stateful": true, "consumes": [ "resource:jira" ] }, { "id": "servicenow_workspace", "name": "ServiceNow Workspace", "component_type": "dagster_community_components.ServiceNowWorkspaceComponent", "path": "integrations/servicenow_workspace", "category": "ingestion", "icon": "AccountTree", "description": "Auto-emit one Dagster asset per ServiceNow table by enumerating sys_db_object. StateBackedComponent \u2014 discovery cached to disk. Materializing an asset reads recent records via the Table API. Workspace-shape peer of servicenow_ingestion.", "tags": [ "integration", "servicenow", "itsm", "workspace", "auto-discovery", "state-backed" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/servicenow_workspace/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/servicenow_workspace/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/servicenow_workspace/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/servicenow_workspace/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/servicenow_workspace/schema.json", "dependencies": { "pip": [ "pandas>=2.0.0", "requests>=2.28.0" ] }, "validation": { "level": "code" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "outputs": [ "one_asset_per_servicenow_table" ], "requires_pip": [ "pandas", "requests" ], "chains_with": [ "dataframe_to_snowflake", "dataframe_to_bigquery", "servicenow_sensor" ], "output_type": "pd.DataFrame" }, "produces": [ "multi_asset" ], "stateful": true, "consumes": [ "resource:servicenow" ] }, { "id": "notion_workspace", "name": "Notion Workspace", "component_type": "dagster_community_components.NotionWorkspaceComponent", "path": "integrations/notion_workspace", "category": "ingestion", "icon": "AccountTree", "description": "Auto-emit one Dagster asset per Notion database via the Search API. StateBackedComponent \u2014 discovery cached to disk. Materializing an asset queries the database and flattens property values (title/rich_text/select/multi_select/date/number/checkbox/people/url/email) into a DataFrame.", "tags": [ "integration", "notion", "workspace", "auto-discovery", "state-backed" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/notion_workspace/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/notion_workspace/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/notion_workspace/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/notion_workspace/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/notion_workspace/schema.json", "dependencies": { "pip": [ "pandas>=2.0.0", "requests>=2.28.0" ] }, "validation": { "level": "code" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "outputs": [ "one_asset_per_notion_database" ], "requires_pip": [ "pandas", "requests" ], "chains_with": [ "dataframe_to_snowflake", "dataframe_to_bigquery", "notion_database_sensor" ], "output_type": "pd.DataFrame" }, "produces": [ "multi_asset" ], "stateful": true }, { "id": "airtable_workspace", "name": "Airtable Workspace", "component_type": "dagster_community_components.AirtableWorkspaceComponent", "path": "integrations/airtable_workspace", "category": "ingestion", "icon": "AccountTree", "description": "Auto-emit one Dagster asset per Airtable table by enumerating bases \u00d7 tables via the Meta API. StateBackedComponent \u2014 discovery cached to disk. Materializing an asset reads records and emits a DataFrame with flattened fields. Workspace-shape peer of airtable_ingestion.", "tags": [ "ingestion", "airtable", "workspace", "auto-discovery", "state-backed" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/airtable_workspace/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/airtable_workspace/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/airtable_workspace/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/airtable_workspace/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/airtable_workspace/schema.json", "dependencies": { "pip": [ "pandas>=2.0.0", "requests>=2.28.0" ] }, "validation": { "level": "code" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "outputs": [ "one_asset_per_airtable_table" ], "requires_pip": [ "pandas", "requests" ], "chains_with": [ "dataframe_to_snowflake", "dataframe_to_bigquery" ], "output_type": "pd.DataFrame" }, "produces": [ "multi_asset" ], "stateful": true, "consumes": [ "resource:airtable" ] }, { "id": "github_workspace", "name": "GitHub Workspace", "component_type": "dagster_community_components.GitHubWorkspaceComponent", "path": "integrations/github_workspace", "category": "ingestion", "icon": "AccountTree", "description": "Auto-emit one Dagster asset per GitHub Actions workflow across every repo in an org (or user). StateBackedComponent \u2014 discovery cached to disk. Materializing an asset reads the most recent workflow runs and emits a DataFrame with status / conclusion / event / actor metadata.", "tags": [ "ingestion", "github", "actions", "workspace", "auto-discovery", "state-backed" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/github_workspace/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/github_workspace/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/github_workspace/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/github_workspace/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/github_workspace/schema.json", "dependencies": { "pip": [ "pandas>=2.0.0", "requests>=2.28.0" ] }, "validation": { "level": "code" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "outputs": [ "one_asset_per_github_workflow" ], "requires_pip": [ "pandas", "requests" ], "chains_with": [ "dataframe_to_snowflake", "github_event_sensor" ], "output_type": "pd.DataFrame" }, "produces": [ "multi_asset" ], "stateful": true, "consumes": [ "resource:github" ] }, { "id": "google_analytics_workspace", "name": "Google Analytics Workspace", "component_type": "dagster_community_components.GoogleAnalyticsWorkspaceComponent", "path": "integrations/google_analytics_workspace", "category": "ingestion", "icon": "AccountTree", "description": "Auto-emit one Dagster asset per GA4 property via the Admin API. StateBackedComponent \u2014 discovery cached to disk. Materializing an asset runs a runReport against the GA Data API for the configured metrics + dimensions over a rolling date range, returning a DataFrame.", "tags": [ "ingestion", "google-analytics", "ga4", "analytics", "workspace", "auto-discovery", "state-backed" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_analytics_workspace/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_analytics_workspace/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_analytics_workspace/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_analytics_workspace/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_analytics_workspace/schema.json", "dependencies": { "pip": [ "pandas>=2.0.0", "requests>=2.28.0", "pyjwt[crypto]>=2.8.0" ] }, "validation": { "level": "code" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "outputs": [ "one_asset_per_ga_property" ], "requires_pip": [ "pandas", "requests", "pyjwt" ], "chains_with": [ "dataframe_to_snowflake", "dataframe_to_bigquery" ], "output_type": "pd.DataFrame" }, "produces": [ "multi_asset" ], "stateful": true }, { "id": "shopify_workspace", "name": "Shopify Workspace", "component_type": "dagster_community_components.ShopifyWorkspaceComponent", "path": "integrations/shopify_workspace", "category": "ingestion", "icon": "AccountTree", "description": "Auto-emit one Dagster asset per Shopify top-level resource (products / orders / customers / inventory_items / etc.) for a single store. Materializing runs a paginated REST list call.", "tags": [ "ingestion", "shopify", "e-commerce", "workspace", "auto-discovery", "state-backed" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/shopify_workspace/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/shopify_workspace/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/shopify_workspace/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/shopify_workspace/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/shopify_workspace/schema.json", "dependencies": { "pip": [ "pandas>=2.0.0", "requests>=2.28.0" ] }, "validation": { "level": "code" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "outputs": [ "one_asset_per_shopify_resource" ], "requires_pip": [ "pandas", "requests" ], "chains_with": [ "dataframe_to_snowflake", "dataframe_to_bigquery" ], "output_type": "pd.DataFrame" }, "produces": [ "multi_asset" ], "stateful": true }, { "id": "stripe_workspace", "name": "Stripe Workspace", "component_type": "dagster_community_components.StripeWorkspaceComponent", "path": "integrations/stripe_workspace", "category": "ingestion", "icon": "AccountTree", "description": "Auto-emit one Dagster asset per top-level Stripe resource (customers / charges / subscriptions / invoices / payment_intents / etc.). Materializing runs a paginated List call against api.stripe.com/v1/{resource}.", "tags": [ "ingestion", "stripe", "billing", "payments", "workspace", "auto-discovery", "state-backed" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/stripe_workspace/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/stripe_workspace/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/stripe_workspace/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/stripe_workspace/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/stripe_workspace/schema.json", "dependencies": { "pip": [ "pandas>=2.0.0", "requests>=2.28.0" ] }, "validation": { "level": "code" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "outputs": [ "one_asset_per_stripe_resource" ], "requires_pip": [ "pandas", "requests" ], "chains_with": [ "dataframe_to_snowflake", "dataframe_to_bigquery", "stripe_event_sensor" ], "output_type": "pd.DataFrame" }, "produces": [ "multi_asset" ], "stateful": true, "consumes": [ "resource:stripe" ] }, { "id": "facebook_ads_workspace", "name": "Facebook Ads Workspace", "component_type": "dagster_community_components.FacebookAdsWorkspaceComponent", "path": "integrations/facebook_ads_workspace", "category": "ingestion", "icon": "AccountTree", "description": "Auto-emit one Dagster asset per Facebook Ads campaign across specified ad accounts. StateBackedComponent \u2014 discovery cached to disk. Materializing runs a Marketing API insights query and emits a DataFrame with impressions / clicks / spend / reach / ctr / cpc metrics.", "tags": [ "ingestion", "facebook-ads", "marketing", "ads", "workspace", "auto-discovery", "state-backed" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/facebook_ads_workspace/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/facebook_ads_workspace/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/facebook_ads_workspace/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/facebook_ads_workspace/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/facebook_ads_workspace/schema.json", "dependencies": { "pip": [ "pandas>=2.0.0", "requests>=2.28.0" ] }, "validation": { "level": "code" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "outputs": [ "one_asset_per_facebook_campaign" ], "requires_pip": [ "pandas", "requests" ], "chains_with": [ "dataframe_to_snowflake", "dataframe_to_bigquery" ], "output_type": "pd.DataFrame" }, "produces": [ "multi_asset" ], "stateful": true }, { "id": "linkedin_ads_workspace", "name": "LinkedIn Ads Workspace", "component_type": "dagster_community_components.LinkedInAdsWorkspaceComponent", "path": "integrations/linkedin_ads_workspace", "category": "ingestion", "icon": "AccountTree", "description": "Auto-emit one Dagster asset per LinkedIn Ads campaign across specified ad accounts. Materializing runs an adAnalytics finder query and emits a DataFrame with impressions / clicks / cost / conversions.", "tags": [ "ingestion", "linkedin-ads", "marketing", "ads", "workspace", "auto-discovery", "state-backed" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/linkedin_ads_workspace/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/linkedin_ads_workspace/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/linkedin_ads_workspace/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/linkedin_ads_workspace/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/linkedin_ads_workspace/schema.json", "dependencies": { "pip": [ "pandas>=2.0.0", "requests>=2.28.0" ] }, "validation": { "level": "code" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "outputs": [ "one_asset_per_linkedin_campaign" ], "requires_pip": [ "pandas", "requests" ], "chains_with": [ "dataframe_to_snowflake", "dataframe_to_bigquery" ], "output_type": "pd.DataFrame" }, "produces": [ "multi_asset" ], "stateful": true }, { "id": "google_sheets_workspace", "name": "Google Sheets Workspace", "component_type": "dagster_community_components.GoogleSheetsWorkspaceComponent", "path": "integrations/google_sheets_workspace", "category": "ingestion", "icon": "AccountTree", "description": "Auto-emit one Dagster asset per (spreadsheet, tab) in a Drive folder. StateBackedComponent \u2014 discovery cached to disk. Materializing reads the tab's values via the Sheets API and returns a DataFrame (header row treated as column names).", "tags": [ "ingestion", "google-sheets", "sheets", "workspace", "auto-discovery", "state-backed" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_sheets_workspace/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_sheets_workspace/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_sheets_workspace/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_sheets_workspace/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/google_sheets_workspace/schema.json", "dependencies": { "pip": [ "pandas>=2.0.0", "requests>=2.28.0", "pyjwt[crypto]>=2.8.0" ] }, "validation": { "level": "code" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "outputs": [ "one_asset_per_google_sheet_tab" ], "requires_pip": [ "pandas", "requests", "pyjwt" ], "chains_with": [ "dataframe_to_snowflake", "dataframe_to_bigquery" ], "output_type": "pd.DataFrame" }, "produces": [ "multi_asset" ], "stateful": true }, { "id": "mlflow_workspace", "name": "MLflow Workspace", "component_type": "dagster_community_components.MLflowWorkspaceComponent", "path": "integrations/mlflow_workspace", "category": "ingestion", "icon": "AccountTree", "description": "Auto-emit Dagster assets for MLflow experiments (recent runs + metrics + params) and registered models (versions). StateBackedComponent \u2014 discovery cached to disk.", "tags": [ "ingestion", "mlflow", "ml", "workspace", "auto-discovery", "state-backed" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/mlflow_workspace/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/mlflow_workspace/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/mlflow_workspace/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/mlflow_workspace/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/mlflow_workspace/schema.json", "dependencies": { "pip": [ "pandas>=2.0.0", "requests>=2.28.0" ] }, "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/mlflow_pipeline.md", "last_validated": "2026-07-20" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "outputs": [ "one_asset_per_mlflow_experiment_and_model" ], "requires_pip": [ "pandas", "requests" ], "chains_with": [ "dataframe_to_snowflake", "mlflow_model_sensor" ], "output_type": "pd.DataFrame" }, "produces": [ "multi_asset" ], "stateful": true, "consumes": [ "resource:mlflow" ] }, { "id": "wandb_workspace", "name": "Weights & Biases Workspace", "component_type": "dagster_community_components.WandbWorkspaceComponent", "path": "integrations/wandb_workspace", "category": "ingestion", "icon": "AccountTree", "description": "Auto-emit one Dagster asset per Weights & Biases project for a given entity. Materializing fetches recent runs via GraphQL and emits a DataFrame with state / summary metrics / config.", "tags": [ "ingestion", "wandb", "ml", "workspace", "auto-discovery", "state-backed" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/wandb_workspace/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/wandb_workspace/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/wandb_workspace/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/wandb_workspace/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/wandb_workspace/schema.json", "dependencies": { "pip": [ "pandas>=2.0.0", "requests>=2.28.0" ] }, "validation": { "level": "code" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "outputs": [ "one_asset_per_wandb_project" ], "requires_pip": [ "pandas", "requests" ], "chains_with": [ "dataframe_to_snowflake" ], "output_type": "pd.DataFrame" }, "produces": [ "multi_asset" ], "stateful": true, "consumes": [ "resource:wandb" ] }, { "id": "pagerduty_workspace", "name": "PagerDuty Workspace", "component_type": "dagster_community_components.PagerDutyWorkspaceComponent", "path": "integrations/pagerduty_workspace", "category": "ingestion", "icon": "AccountTree", "description": "Auto-emit one Dagster asset per PagerDuty service. Materializing fetches recent incidents (statuses / assignees / timestamps) as a DataFrame \u2014 foundation for SLA dashboards and MTTR analytics.", "tags": [ "ingestion", "pagerduty", "incident-management", "workspace", "auto-discovery", "state-backed" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/pagerduty_workspace/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/pagerduty_workspace/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/pagerduty_workspace/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/pagerduty_workspace/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/integrations/pagerduty_workspace/schema.json", "dependencies": { "pip": [ "pandas>=2.0.0", "requests>=2.28.0" ] }, "validation": { "level": "code" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "outputs": [ "one_asset_per_pagerduty_service" ], "requires_pip": [ "pandas", "requests" ], "chains_with": [ "dataframe_to_snowflake", "pagerduty_incident_sensor" ], "output_type": "pd.DataFrame" }, "produces": [ "multi_asset" ], "stateful": true }, { "id": "data_vault_hub_link_satellite", "name": "Data Vault 2.0 Hub / Link / Satellite", "component_type": "dagster_community_components.DataVaultHubLinkSatelliteComponent", "path": "assets/transforms/data_vault_hub_link_satellite", "category": "transformation", "icon": "AccountTree", "description": "Take a raw source DataFrame and generate Data Vault 2.0 Hub / Link / Satellite tables with system columns (hash_key, load_date, record_source, hash_diff). Each is an independently-materializable SDA \u2014 see lineage back to the raw source.", "tags": [ "transformation", "data-vault", "dv2", "dv2.0", "modeling", "warehouse" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/data_vault_hub_link_satellite/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/data_vault_hub_link_satellite/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/data_vault_hub_link_satellite/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/data_vault_hub_link_satellite/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/transforms/data_vault_hub_link_satellite/schema.json", "dependencies": { "pip": [ "pandas>=2.0.0" ] }, "validation": { "level": "live", "evidence": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-community-components-cli/main/examples/setup_f500_poc_local_demo.sh", "last_validated": "2026-07-20" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "inputs": [ "raw_source_dataframe_asset_key" ], "outputs": [ "_hub", "_sat", "_link (optional)" ], "requires_pip": [ "pandas" ], "chains_with": [ "dataframe_to_bigquery", "dataframe_to_snowflake", "warehouse_pipeline" ] }, "produces": [ "asset" ] }, { "id": "spark_k8s_operator_asset", "name": "Spark on K8s Operator Asset", "component_type": "dagster_community_components.SparkK8sOperatorAssetComponent", "path": "assets/infrastructure/spark_k8s_operator_asset", "category": "infrastructure", "icon": "PlayArrow", "description": "Submit a SparkApplication CRD to the Kubernetes Spark Operator (kubeflow/spark-on-k8s-operator) and materialize on terminal state (COMPLETED / FAILED / SUBMISSION_FAILED). Right for organizations wrapping PySpark ETLs behind a config-driven 'data ingest' framework and submitting them to k8s. Requires kubectl on PATH.", "tags": [ "infrastructure", "spark", "kubernetes", "spark-operator", "pyspark", "etl" ], "component_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/spark_k8s_operator_asset/component.py", "example_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/spark_k8s_operator_asset/example.yaml", "readme_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/spark_k8s_operator_asset/README.md", "requirements_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/spark_k8s_operator_asset/requirements.txt", "schema_url": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/assets/infrastructure/spark_k8s_operator_asset/schema.json", "dependencies": { "pip": [ "pyyaml>=6.0" ] }, "validation": { "level": "code" }, "version": "1.0.0", "author": "Dagster Community", "agent_hints": { "outputs": [ "one_asset_per_spark_application" ], "requires_pip": [ "pyyaml" ], "chains_with": [ "dataframe_to_bigquery", "dataframe_to_snowflake", "k8s_job_asset" ], "anti_uses": "For in-process PySpark use pyspark_pipeline (no k8s dep). This component submits a SparkApplication CRD to the cluster; requires the Spark Operator to be installed." }, "produces": [ "asset" ] } ], "schema_spec": "https://raw.githubusercontent.com/eric-thomas-dagster/dagster-component-templates/main/schema-spec.json", "schema_spec_local": "schema-spec.json", "total": 927 }