6270d8c956
Testing / remote-protocol-compat (0.16.0) (push) Successful in 1m1s
Testing / remote-protocol-compat (0.15.0) (push) Successful in 1m3s
Testing / test (push) Failing after 1m15s
Build & Publish Package / publish (push) Successful in 51s
Package Extension / package-extension (push) Successful in 1m6s
- Add SSH-style server identity keys and known-host verification for remote serve endpoints. - Add remote add/list/remove commands for explicit endpoint persistence. - Fix remote clients listing to fan out through target discovery instead of ambiguous auto-routing. - Add URL glob matching for tabs filter and count with extension tests. - Add n8n credential pinning for server public keys or SHA256 fingerprints. - Remove obsolete compat shim behavior while keeping empty compat seams for future protocol changes. - Bump browser-cli to 0.16.4 and n8n node to 0.3.1. - Cover known-hosts, remote registry, compat seams, n8n protocol verification, and URL matching with tests.
31 lines
1.2 KiB
Python
31 lines
1.2 KiB
Python
"""
|
|
Auth-field normalizers — applied to the raw incoming message *before* the
|
|
auth check runs. Protocol fields (pubkey, sig, …) are still present here.
|
|
|
|
Add one entry per breaking auth-field change:
|
|
("X.Y.Z", transformer_fn)
|
|
|
|
Entries must stay in ascending version order.
|
|
|
|
The registry is intentionally empty: the first public release was 0.14.1, so no
|
|
legacy-client shim has ever been needed. This module is the seam — add a tuple
|
|
here (and a unit test for it) the day a breaking auth-field change ships.
|
|
"""
|
|
from __future__ import annotations
|
|
from typing import Callable
|
|
from browser_cli.version_manager import parse_version
|
|
|
|
# ── registry ──────────────────────────────────────────────────────────────────
|
|
|
|
_AUTH_COMPAT: list[tuple[str, Callable[[dict], dict]]] = []
|
|
|
|
def adapt_auth(msg: dict, client_version: str) -> dict:
|
|
"""Apply all auth normalizers needed to bring msg up to the current format."""
|
|
if not _AUTH_COMPAT:
|
|
return msg
|
|
cv = parse_version(client_version)
|
|
for version, fn in _AUTH_COMPAT:
|
|
if cv < parse_version(version):
|
|
msg = fn(msg)
|
|
return msg
|