controller: browser_overlays + cookies field (Playwright session auth)
Use case: Grafana с session cookie (login flow вместо Bearer token),
admin UIs без API token endpoint.
Config:
dashboards:
- id: my_widget
cookies:
- name: session_id
value: abc123
url: https://example.com/
Каждый element passed к page.context.add_cookies. Playwright spec format:
{name, value, url} OR {name, value, domain, path, ...}.
Multi-dashboard verified рабочий (caвая dashboard = own Page в shared browser).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -73,6 +73,10 @@ class DashboardCfg(BaseModel):
|
||||
description="HTTP headers для каждого request — auth tokens, custom UA. "
|
||||
"Пример Grafana service account: "
|
||||
'{"Authorization": "Bearer glsa_xxxxxxxx"}')
|
||||
cookies: list[dict] = Field(default_factory=list,
|
||||
description="Session cookies через Playwright context.add_cookies. "
|
||||
"Каждый dict: {name, value, url}|{name, value, domain, path}. "
|
||||
"Пример: [{\"name\":\"session_id\",\"value\":\"abc\",\"url\":\"https://...\"}]")
|
||||
opacity: float = 1.0
|
||||
z_order: int = 28
|
||||
|
||||
@@ -137,6 +141,12 @@ class BrowserRenderer:
|
||||
)
|
||||
if cfg.extra_http_headers:
|
||||
await page.set_extra_http_headers(cfg.extra_http_headers)
|
||||
if cfg.cookies:
|
||||
try:
|
||||
await page.context.add_cookies(cfg.cookies)
|
||||
except Exception as e:
|
||||
log.warning("browser_overlays.cookies_invalid",
|
||||
id=cfg.id, error=str(e))
|
||||
# background_color в new_context не работает для transparent — used CLI arg
|
||||
await page.goto(cfg.url, wait_until=cfg.wait_until,
|
||||
timeout=cfg.page_timeout_ms)
|
||||
|
||||
Reference in New Issue
Block a user