|
@@ -22,6 +22,10 @@ class OpsService:
|
|
# decrypt_token and obfuscated_token
|
|
# decrypt_token and obfuscated_token
|
|
tenant_id = db.session.query(App).filter(App.id == app_id).first().tenant_id
|
|
tenant_id = db.session.query(App).filter(App.id == app_id).first().tenant_id
|
|
decrypt_tracing_config = OpsTraceManager.decrypt_tracing_config(tenant_id, tracing_provider, trace_config_data.tracing_config)
|
|
decrypt_tracing_config = OpsTraceManager.decrypt_tracing_config(tenant_id, tracing_provider, trace_config_data.tracing_config)
|
|
|
|
+ if tracing_provider == 'langfuse' and ('project_key' not in decrypt_tracing_config or not decrypt_tracing_config.get('project_key')):
|
|
|
|
+ project_key = OpsTraceManager.get_trace_config_project_key(decrypt_tracing_config, tracing_provider)
|
|
|
|
+ decrypt_tracing_config['project_key'] = project_key
|
|
|
|
+
|
|
decrypt_tracing_config = OpsTraceManager.obfuscated_decrypt_token(tracing_provider, decrypt_tracing_config)
|
|
decrypt_tracing_config = OpsTraceManager.obfuscated_decrypt_token(tracing_provider, decrypt_tracing_config)
|
|
|
|
|
|
trace_config_data.tracing_config = decrypt_tracing_config
|
|
trace_config_data.tracing_config = decrypt_tracing_config
|
|
@@ -37,7 +41,7 @@ class OpsService:
|
|
:param tracing_config: tracing config
|
|
:param tracing_config: tracing config
|
|
:return:
|
|
:return:
|
|
"""
|
|
"""
|
|
- if tracing_provider not in provider_config_map.keys() and tracing_provider != None:
|
|
|
|
|
|
+ if tracing_provider not in provider_config_map.keys() and tracing_provider:
|
|
return {"error": f"Invalid tracing provider: {tracing_provider}"}
|
|
return {"error": f"Invalid tracing provider: {tracing_provider}"}
|
|
|
|
|
|
config_class, other_keys = provider_config_map[tracing_provider]['config_class'], \
|
|
config_class, other_keys = provider_config_map[tracing_provider]['config_class'], \
|
|
@@ -51,6 +55,9 @@ class OpsService:
|
|
if not OpsTraceManager.check_trace_config_is_effective(tracing_config, tracing_provider):
|
|
if not OpsTraceManager.check_trace_config_is_effective(tracing_config, tracing_provider):
|
|
return {"error": "Invalid Credentials"}
|
|
return {"error": "Invalid Credentials"}
|
|
|
|
|
|
|
|
+ # get project key
|
|
|
|
+ project_key = OpsTraceManager.get_trace_config_project_key(tracing_config, tracing_provider)
|
|
|
|
+
|
|
# check if trace config already exists
|
|
# check if trace config already exists
|
|
trace_config_data: TraceAppConfig = db.session.query(TraceAppConfig).filter(
|
|
trace_config_data: TraceAppConfig = db.session.query(TraceAppConfig).filter(
|
|
TraceAppConfig.app_id == app_id, TraceAppConfig.tracing_provider == tracing_provider
|
|
TraceAppConfig.app_id == app_id, TraceAppConfig.tracing_provider == tracing_provider
|
|
@@ -62,6 +69,8 @@ class OpsService:
|
|
# get tenant id
|
|
# get tenant id
|
|
tenant_id = db.session.query(App).filter(App.id == app_id).first().tenant_id
|
|
tenant_id = db.session.query(App).filter(App.id == app_id).first().tenant_id
|
|
tracing_config = OpsTraceManager.encrypt_tracing_config(tenant_id, tracing_provider, tracing_config)
|
|
tracing_config = OpsTraceManager.encrypt_tracing_config(tenant_id, tracing_provider, tracing_config)
|
|
|
|
+ if tracing_provider == 'langfuse':
|
|
|
|
+ tracing_config['project_key'] = project_key
|
|
trace_config_data = TraceAppConfig(
|
|
trace_config_data = TraceAppConfig(
|
|
app_id=app_id,
|
|
app_id=app_id,
|
|
tracing_provider=tracing_provider,
|
|
tracing_provider=tracing_provider,
|