27
27
StreamReadResponse ,
28
28
StreamTestReadRequest ,
29
29
)
30
- from ..auth import verify_jwt_token
31
30
from ..command_processor .processor import ManifestCommandProcessor
32
31
from ..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
33
34
34
35
35
36
def safe_build_source (
@@ -68,6 +69,13 @@ def test_read(request: StreamTestReadRequest) -> StreamReadResponse:
68
69
"""
69
70
Test reading from a specific stream in the manifest.
70
71
"""
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
+
71
79
config_dict = request .config .model_dump ()
72
80
73
81
catalog = build_catalog (request .stream_name )
@@ -104,6 +112,13 @@ def test_read(request: StreamTestReadRequest) -> StreamReadResponse:
104
112
@router .post ("/check" , operation_id = "check" )
105
113
def check (request : CheckRequest ) -> CheckResponse :
106
114
"""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
+
107
122
source = safe_build_source (request .manifest .model_dump (), request .config .model_dump ())
108
123
runner = ManifestCommandProcessor (source )
109
124
success , message = runner .check_connection (request .config .model_dump ())
@@ -113,6 +128,13 @@ def check(request: CheckRequest) -> CheckResponse:
113
128
@router .post ("/discover" , operation_id = "discover" )
114
129
def discover (request : DiscoverRequest ) -> DiscoverResponse :
115
130
"""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
+
116
138
source = safe_build_source (request .manifest .model_dump (), request .config .model_dump ())
117
139
runner = ManifestCommandProcessor (source )
118
140
catalog = runner .discover (request .config .model_dump ())
@@ -124,6 +146,13 @@ def discover(request: DiscoverRequest) -> DiscoverResponse:
124
146
@router .post ("/resolve" , operation_id = "resolve" )
125
147
def resolve (request : ResolveRequest ) -> ManifestResponse :
126
148
"""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
+
127
156
source = safe_build_source (request .manifest .model_dump (), {})
128
157
return ManifestResponse (manifest = Manifest (** source .resolved_manifest ))
129
158
@@ -135,6 +164,13 @@ def full_resolve(request: FullResolveRequest) -> ManifestResponse:
135
164
136
165
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
137
166
"""
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
+
138
174
source = safe_build_source (request .manifest .model_dump (), request .config .model_dump ())
139
175
manifest = {** source .resolved_manifest }
140
176
streams = manifest .get ("streams" , [])
0 commit comments