File tree Expand file tree Collapse file tree 6 files changed +47
-3
lines changed
airbyte_cdk/manifest_server
unit_tests/manifest_server/dependencies Expand file tree Collapse file tree 6 files changed +47
-3
lines changed File renamed without changes.
Original file line number Diff line number Diff line change 1+ """
2+ FastAPI dependencies for the Manifest Server.
3+
4+ This module contains reusable FastAPI dependencies that can be used across
5+ different routers in the manifest server.
6+ """
7+
8+ import logging
9+ from typing import Optional
10+
11+ import ddtrace
12+ from fastapi import Header
13+
14+ logger = logging .getLogger (__name__ )
15+
16+
17+ def apply_trace_tags (
18+ workspace_id : Optional [str ] = Header (None , alias = "x-workspace-id" ),
19+ project_id : Optional [str ] = Header (None , alias = "x-project-id" ),
20+ ) -> None :
21+ """FastAPI dependency to apply trace tags from headers to the current span."""
22+ if not workspace_id and not project_id :
23+ return
24+
25+ # Log the trace IDs for observability
26+ log_parts = []
27+ if workspace_id :
28+ log_parts .append (f"workspace_id={ workspace_id } " )
29+ if project_id :
30+ log_parts .append (f"project_id={ project_id } " )
31+
32+ if log_parts :
33+ logger .info (f"Processing request with trace tags: { ', ' .join (log_parts )} " )
34+
35+ try :
36+ span = ddtrace .tracer .current_span ()
37+ if span :
38+ if workspace_id :
39+ span .set_tag ("workspace_id" , workspace_id )
40+ if project_id :
41+ span .set_tag ("project_id" , project_id )
42+ except Exception :
43+ # Silently ignore any ddtrace-related errors (e.g. if ddtrace.auto wasn't run)
44+ pass
Original file line number Diff line number Diff line change 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 ..dependencies import apply_trace_tags , verify_jwt_token
3333
3434
3535def safe_build_source (
@@ -59,7 +59,7 @@ def safe_build_source(
5959router = APIRouter (
6060 prefix = "/manifest" ,
6161 tags = ["manifest" ],
62- dependencies = [Depends (verify_jwt_token )],
62+ dependencies = [Depends (verify_jwt_token ), Depends ( apply_trace_tags ) ],
6363)
6464
6565
Original file line number Diff line number Diff line change 77from fastapi import HTTPException
88from fastapi .security import HTTPAuthorizationCredentials
99
10- from airbyte_cdk .manifest_server .auth import verify_jwt_token
10+ from airbyte_cdk .manifest_server .dependencies import verify_jwt_token
1111
1212
1313class TestVerifyJwtToken :
You can’t perform that action at this time.
0 commit comments