support agent user header (#2077)
This commit is contained in:
@@ -66,7 +66,11 @@ class SkyvernAgent:
|
|||||||
|
|
||||||
settings.BROWSER_TYPE = browser_type
|
settings.BROWSER_TYPE = browser_type
|
||||||
elif base_url and api_key:
|
elif base_url and api_key:
|
||||||
self.client = SkyvernClient(base_url=base_url, api_key=api_key)
|
self.client = SkyvernClient(
|
||||||
|
base_url=base_url,
|
||||||
|
api_key=api_key,
|
||||||
|
extra_headers={"X-User-Agent": "skyvern-mcp"},
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
raise ValueError("base_url and api_key must be both provided")
|
raise ValueError("base_url and api_key must be both provided")
|
||||||
|
|
||||||
|
|||||||
@@ -8,10 +8,12 @@ class SkyvernClient:
|
|||||||
self,
|
self,
|
||||||
base_url: str = settings.SKYVERN_BASE_URL,
|
base_url: str = settings.SKYVERN_BASE_URL,
|
||||||
api_key: str = settings.SKYVERN_API_KEY,
|
api_key: str = settings.SKYVERN_API_KEY,
|
||||||
|
extra_headers: dict[str, str] | None = None,
|
||||||
) -> None:
|
) -> None:
|
||||||
self.base_url = base_url
|
self.base_url = base_url
|
||||||
self.api_key = api_key
|
self.api_key = api_key
|
||||||
self.client = AsyncSkyvern(base_url=base_url, api_key=api_key)
|
self.client = AsyncSkyvern(base_url=base_url, api_key=api_key)
|
||||||
|
self.extra_headers = extra_headers
|
||||||
|
|
||||||
async def run_task(
|
async def run_task(
|
||||||
self,
|
self,
|
||||||
|
|||||||
@@ -179,6 +179,7 @@ async def run_task_v1(
|
|||||||
current_org: Organization = Depends(org_auth_service.get_current_org),
|
current_org: Organization = Depends(org_auth_service.get_current_org),
|
||||||
x_api_key: Annotated[str | None, Header()] = None,
|
x_api_key: Annotated[str | None, Header()] = None,
|
||||||
x_max_steps_override: Annotated[int | None, Header()] = None,
|
x_max_steps_override: Annotated[int | None, Header()] = None,
|
||||||
|
x_user_agent: Annotated[str | None, Header()] = None,
|
||||||
) -> CreateTaskResponse:
|
) -> CreateTaskResponse:
|
||||||
analytics.capture("skyvern-oss-agent-task-create", data={"url": task.url})
|
analytics.capture("skyvern-oss-agent-task-create", data={"url": task.url})
|
||||||
await PermissionCheckerFactory.get_instance().check(current_org, browser_session_id=task.browser_session_id)
|
await PermissionCheckerFactory.get_instance().check(current_org, browser_session_id=task.browser_session_id)
|
||||||
@@ -652,6 +653,7 @@ async def run_workflow_legacy(
|
|||||||
template: bool = Query(False),
|
template: bool = Query(False),
|
||||||
x_api_key: Annotated[str | None, Header()] = None,
|
x_api_key: Annotated[str | None, Header()] = None,
|
||||||
x_max_steps_override: Annotated[int | None, Header()] = None,
|
x_max_steps_override: Annotated[int | None, Header()] = None,
|
||||||
|
x_user_agent: Annotated[str | None, Header()] = None,
|
||||||
) -> RunWorkflowResponse:
|
) -> RunWorkflowResponse:
|
||||||
analytics.capture("skyvern-oss-agent-workflow-execute")
|
analytics.capture("skyvern-oss-agent-workflow-execute")
|
||||||
context = skyvern_context.ensure_context()
|
context = skyvern_context.ensure_context()
|
||||||
@@ -1458,6 +1460,7 @@ async def run_task(
|
|||||||
run_request: TaskRunRequest,
|
run_request: TaskRunRequest,
|
||||||
current_org: Organization = Depends(org_auth_service.get_current_org),
|
current_org: Organization = Depends(org_auth_service.get_current_org),
|
||||||
x_api_key: Annotated[str | None, Header()] = None,
|
x_api_key: Annotated[str | None, Header()] = None,
|
||||||
|
x_user_agent: Annotated[str | None, Header()] = None,
|
||||||
) -> TaskRunResponse:
|
) -> TaskRunResponse:
|
||||||
analytics.capture("skyvern-oss-run-task", data={"url": run_request.url})
|
analytics.capture("skyvern-oss-run-task", data={"url": run_request.url})
|
||||||
await PermissionCheckerFactory.get_instance().check(current_org, browser_session_id=run_request.browser_session_id)
|
await PermissionCheckerFactory.get_instance().check(current_org, browser_session_id=run_request.browser_session_id)
|
||||||
@@ -1600,6 +1603,7 @@ async def run_workflow(
|
|||||||
template: bool = Query(False),
|
template: bool = Query(False),
|
||||||
x_api_key: Annotated[str | None, Header()] = None,
|
x_api_key: Annotated[str | None, Header()] = None,
|
||||||
x_max_steps_override: Annotated[int | None, Header()] = None,
|
x_max_steps_override: Annotated[int | None, Header()] = None,
|
||||||
|
x_user_agent: Annotated[str | None, Header()] = None,
|
||||||
) -> WorkflowRunResponse:
|
) -> WorkflowRunResponse:
|
||||||
analytics.capture("skyvern-oss-run-workflow")
|
analytics.capture("skyvern-oss-run-workflow")
|
||||||
await PermissionCheckerFactory.get_instance().check(
|
await PermissionCheckerFactory.get_instance().check(
|
||||||
|
|||||||
Reference in New Issue
Block a user