2727 StreamReadResponse ,
2828 StreamTestReadRequest ,
2929)
30- from ..auth import verify_jwt_token
3130from ..command_processor .processor import ManifestCommandProcessor
3231from ..command_processor .utils import build_catalog , build_source
32+ from ..helpers .auth import verify_jwt_token
33+ from ..helpers .tracing import apply_trace_tags_from_context
3334
3435
3536def safe_build_source (
@@ -68,6 +69,13 @@ def test_read(request: StreamTestReadRequest) -> StreamReadResponse:
6869 """
6970 Test reading from a specific stream in the manifest.
7071 """
72+ # Apply trace tags from context if provided
73+ if request .context :
74+ apply_trace_tags_from_context (
75+ workspace_id = request .context .workspace_id ,
76+ project_id = request .context .project_id ,
77+ )
78+
7179 config_dict = request .config .model_dump ()
7280
7381 catalog = build_catalog (request .stream_name )
@@ -104,6 +112,13 @@ def test_read(request: StreamTestReadRequest) -> StreamReadResponse:
104112@router .post ("/check" , operation_id = "check" )
105113def check (request : CheckRequest ) -> CheckResponse :
106114 """Check configuration against a manifest"""
115+ # Apply trace tags from context if provided
116+ if request .context :
117+ apply_trace_tags_from_context (
118+ workspace_id = request .context .workspace_id ,
119+ project_id = request .context .project_id ,
120+ )
121+
107122 source = safe_build_source (request .manifest .model_dump (), request .config .model_dump ())
108123 runner = ManifestCommandProcessor (source )
109124 success , message = runner .check_connection (request .config .model_dump ())
@@ -113,6 +128,13 @@ def check(request: CheckRequest) -> CheckResponse:
113128@router .post ("/discover" , operation_id = "discover" )
114129def discover (request : DiscoverRequest ) -> DiscoverResponse :
115130 """Discover streams from a manifest"""
131+ # Apply trace tags from context if provided
132+ if request .context :
133+ apply_trace_tags_from_context (
134+ workspace_id = request .context .workspace_id ,
135+ project_id = request .context .project_id ,
136+ )
137+
116138 source = safe_build_source (request .manifest .model_dump (), request .config .model_dump ())
117139 runner = ManifestCommandProcessor (source )
118140 catalog = runner .discover (request .config .model_dump ())
@@ -124,6 +146,13 @@ def discover(request: DiscoverRequest) -> DiscoverResponse:
124146@router .post ("/resolve" , operation_id = "resolve" )
125147def resolve (request : ResolveRequest ) -> ManifestResponse :
126148 """Resolve a manifest to its final configuration."""
149+ # Apply trace tags from context if provided
150+ if request .context :
151+ apply_trace_tags_from_context (
152+ workspace_id = request .context .workspace_id ,
153+ project_id = request .context .project_id ,
154+ )
155+
127156 source = safe_build_source (request .manifest .model_dump (), {})
128157 return ManifestResponse (manifest = Manifest (** source .resolved_manifest ))
129158
@@ -135,6 +164,13 @@ def full_resolve(request: FullResolveRequest) -> ManifestResponse:
135164
136165 This is a similar operation to resolve, but has an extra step which generates streams from dynamic stream templates if the manifest contains any. This is used when a user clicks the generate streams button on a stream template in the Builder UI
137166 """
167+ # Apply trace tags from context if provided
168+ if request .context :
169+ apply_trace_tags_from_context (
170+ workspace_id = request .context .workspace_id ,
171+ project_id = request .context .project_id ,
172+ )
173+
138174 source = safe_build_source (request .manifest .model_dump (), request .config .model_dump ())
139175 manifest = {** source .resolved_manifest }
140176 streams = manifest .get ("streams" , [])
0 commit comments