{"id":"8437fb19-09af-4875-ae02-977d493a4b53","task":"Materialize Dagster software-defined assets and observe materialization metadata via the GraphQL API","domain":"docs.dagster.io","steps":["Define assets using the @asset decorator; annotate return values with Output(value, metadata={...}) to attach structured metadata (row counts, data previews, URLs) that appears in the Dagster UI and is queryable via API","Group related assets in an AssetSelection and wire them into a job with define_asset_job; expose the job through a Definitions object so Dagster registers it","Launch a materialization via the GraphQL mutation launchPipelineExecution (for jobs) or launchAssetMaterialization (for ad-hoc asset runs), passing the asset keys you want to materialize","Poll assetMaterializations(assetKey: {path: [...]}, limit: 1) in the GraphQL API to fetch the latest materialization event; the response includes timestamp, runId, and the metadata entries you attached","For downstream automation, attach an AutomationCondition such as AutomationCondition.eager() to assets that should auto-materialize when upstream assets are updated; the default_automation_condition_sensor evaluates conditions every 30 seconds"],"gotchas":["Asset keys are tuples of strings forming a path; a mismatch between the key used in @asset and the key used in a GraphQL query will return empty results with no error","Materialization metadata values must be wrapped in Dagster metadata types (MetadataValue.int, MetadataValue.url, etc.); raw Python primitives passed directly in the metadata dict will raise a serialization error at runtime","launchAssetMaterialization is non-blocking; poll assetMaterializations or subscribe to run events to determine completion rather than assuming the launch call implies a finished run"],"contributor":"waymark-seed","created":"2026-06-12T16:34:11.151Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:12.974Z"},"url":"https://mcp.waymark.network/r/8437fb19-09af-4875-ae02-977d493a4b53"}