fix(usage): stop sharing EVOSCIENTIST_DEPLOYMENT_ID with scope partitioning
The usage identity exported the same variable the scope registry reads to partition workspace scopes, so a backend started with the usage environment (61d1b61b) could not see scopes provisioned under the workspace-derived id (5a882492) and every scope lookup 404'd. Usage attribution now reads EVOSCIENTIST_USAGE_DEPLOYMENT_ID; the scope side keeps the original variable. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -51,7 +51,7 @@ def usage_tracking_enabled() -> bool:
|
||||
for name in (
|
||||
"EVOSCIENTIST_USAGE_SINK_URL",
|
||||
"EVOSCIENTIST_USAGE_SINK_TOKEN",
|
||||
"EVOSCIENTIST_DEPLOYMENT_ID",
|
||||
"EVOSCIENTIST_USAGE_DEPLOYMENT_ID",
|
||||
"EVOSCIENTIST_WORKSPACE_ID",
|
||||
"EVOSCIENTIST_USAGE_SPOOL_DIR",
|
||||
)
|
||||
@@ -254,13 +254,13 @@ class UsageCaptureCallback(BaseCallbackHandler):
|
||||
event = UsageEventV1(
|
||||
schema_version=1,
|
||||
event_id=(
|
||||
f"{os.environ['EVOSCIENTIST_DEPLOYMENT_ID']}:{run_id}:callback_final:1"
|
||||
f"{os.environ['EVOSCIENTIST_USAGE_DEPLOYMENT_ID']}:{run_id}:callback_final:1"
|
||||
),
|
||||
event_type="usage_observed",
|
||||
source="callback_final",
|
||||
authority_class="observed_final",
|
||||
revision=1,
|
||||
deployment_id=os.environ["EVOSCIENTIST_DEPLOYMENT_ID"],
|
||||
deployment_id=os.environ["EVOSCIENTIST_USAGE_DEPLOYMENT_ID"],
|
||||
workspace_id=os.environ["EVOSCIENTIST_WORKSPACE_ID"],
|
||||
model_call_id=run_id,
|
||||
parent_run_id=state.parent_run_id,
|
||||
|
||||
@@ -116,7 +116,7 @@ def prepare_usage_environment(
|
||||
f"http://127.0.0.1:{webui_port}/api/usage/events"
|
||||
),
|
||||
"EVOSCIENTIST_USAGE_SINK_TOKEN": sink_token,
|
||||
"EVOSCIENTIST_DEPLOYMENT_ID": deployment_id,
|
||||
"EVOSCIENTIST_USAGE_DEPLOYMENT_ID": deployment_id,
|
||||
"EVOSCIENTIST_WORKSPACE_ID": workspace_id,
|
||||
"EVOSCIENTIST_USAGE_SPOOL_DIR": str(data_dir / "usage-spool"),
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ class UsageSpool:
|
||||
def __init__(self) -> None:
|
||||
self.sink_url = os.environ["EVOSCIENTIST_USAGE_SINK_URL"]
|
||||
self.token = os.environ["EVOSCIENTIST_USAGE_SINK_TOKEN"]
|
||||
self.deployment_id = os.environ["EVOSCIENTIST_DEPLOYMENT_ID"]
|
||||
self.deployment_id = os.environ["EVOSCIENTIST_USAGE_DEPLOYMENT_ID"]
|
||||
self.workspace_id = os.environ["EVOSCIENTIST_WORKSPACE_ID"]
|
||||
self.root = Path(os.environ["EVOSCIENTIST_USAGE_SPOOL_DIR"])
|
||||
if not self.root.is_absolute():
|
||||
|
||||
@@ -62,7 +62,7 @@ def _usage_environment(monkeypatch: pytest.MonkeyPatch, tmp_path: Path) -> None:
|
||||
"EVOSCIENTIST_USAGE_TRACKING": "true",
|
||||
"EVOSCIENTIST_USAGE_SINK_URL": "http://127.0.0.1:1/api/usage/events",
|
||||
"EVOSCIENTIST_USAGE_SINK_TOKEN": "test-token",
|
||||
"EVOSCIENTIST_DEPLOYMENT_ID": "11111111-1111-4111-8111-111111111111",
|
||||
"EVOSCIENTIST_USAGE_DEPLOYMENT_ID": "11111111-1111-4111-8111-111111111111",
|
||||
"EVOSCIENTIST_WORKSPACE_ID": "ws1_fixture",
|
||||
"EVOSCIENTIST_USAGE_SPOOL_DIR": str(tmp_path / "spool"),
|
||||
"EVOSCIENTIST_WORKSPACE_DIR": str(tmp_path),
|
||||
|
||||
Reference in New Issue
Block a user