data-fair-browse
Piloter une plateforme data-fair au navigateur
Pour un agent qui utilise une plateforme data-fair déployée via un navigateur MCP (chrome-devtools ou Playwright), le plus souvent sous une identité non humaine (NHI). Le fil conducteur : la page connaît déjà ses propres opérations, il faut les lui demander avant de simuler un humain.
Cet skill ne couvre pas le développement des services (→ data-fair-session, data-fair-ws, vjsf), ni le contenu éditorial des pages de portail (→ portals-pages, qui s'appuie sur celui-ci).
1. L'identité NHI
Le navigateur est lancé derrière @data-fair/nhi-proxy, qui échange une clé NHI contre des sessions simple-directory courtes et injecte les cookies. Le câblage détaillé est dans nhi-proxy/docs/usage.md, qui n'est pas publié dans le paquet npm. L'essentiel :
- Lancer un proxy par identité :
npx @data-fair/nhi-proxy serve --profile "<profil>"(profils :nhi-proxy profiles, un port chacun, 7331 pour le premier). Au démarrage, il affiche la config Playwright MCP et le pin SPKI. Sonde :curl --proxy http://127.0.0.1:7331 --cacert ~/.config/nhi-proxy/<profil>/ca.crt https://koumoul.com/simple-directory/api/auth/me. - Page publique (portail, rendu visiteur) : elle peut se consulter avec le navigateur MCP normal, sans NHI ni proxy.
- Navigateur MCP derrière le proxy : chrome-devtools (
--proxyServer=http://127.0.0.1:<port> --chromeArg=--ignore-certificate-errors-spki-list=<pin>) ou Playwright (config--configaffichée au démarrage du proxy). Ces options sont lues au lancement du MCP : il ne répond que tant que son proxy tourne (sinonERR_PROXY_CONNECTION_FAILED) et n'accepte que la CA du profil dont il porte le pin. Ne pas en installer un de sa propre initiative. - Script Playwright autonome (captures, tests, tournage) :
chromium.launch({ proxy: { server: 'http://127.0.0.1:7331' } }), puisbrowser.newContext({ ignoreHTTPSErrors: true }), car le proxy re-signe l'hôte cible avec sa propre CA. Le navigateur reçoit la session sous forme de cookies ordinaires dès la première navigation : pas destorageStateà récolter. AjouterbypassCSP: truepour injecter du style dans la page (annotations), que le CSP des services interdit. - Ne jamais lire
~/.config/nhi-proxy/**au-delà deconfig.json: la clé de signature y est stockée.
Ce qu'il faut savoir côté agent :