mirror of
https://github.com/Such-Software/adaptive-multi-protocol-gateway.git
synced 2026-10-17 07:31:32 +02:00
Declare browser profile isolation
This commit is contained in:
@@ -84,6 +84,7 @@ def _fixture_entry(
|
||||
"checks": {
|
||||
"transport": transport,
|
||||
"profile": transport,
|
||||
"isolation": "transport-profile",
|
||||
},
|
||||
"interaction": _interaction_policy(protocol, route_policy),
|
||||
}
|
||||
|
||||
@@ -94,6 +94,10 @@ Daemon adapters provide a common interface:
|
||||
Adapters must be conservative. They do not modify non-AMPG config without showing a
|
||||
plan first, and managed config lives under AMPG-owned state directories.
|
||||
|
||||
Fixture manifests are the AMPG-to-AMPB boundary. They declare the published URL, expected
|
||||
transport, expected profile, and transport-profile isolation result. They do not prescribe
|
||||
browser process management or local daemon ownership; those decisions remain inside AMPB.
|
||||
|
||||
## Platform providers
|
||||
|
||||
Platform providers decide what daemon management means on the current host. AMPG detects
|
||||
|
||||
@@ -19,7 +19,7 @@ The manifest contains public route expectations only:
|
||||
- enabled protocol fixtures.
|
||||
- protocol renderer and relative output path.
|
||||
- route URL for AMPB checks.
|
||||
- expected AMPB transport and profile.
|
||||
- expected AMPB transport, profile, and transport-profile isolation.
|
||||
- declared interaction tier, identity adapter, payment adapter, realtime flag, and
|
||||
public exposure flag.
|
||||
- optional route-group metadata for configured public route policies.
|
||||
@@ -27,6 +27,10 @@ The manifest contains public route expectations only:
|
||||
It must not contain private host inventory, hidden-service keys, tunnel keys, credentials,
|
||||
or deployment notes.
|
||||
|
||||
The isolation check is a browser-facing result, not a daemon-management instruction.
|
||||
AMPG declares which transport profile must consume the route; AMPB independently decides
|
||||
whether to adopt or start the local transport needed to reach it.
|
||||
|
||||
## Commands
|
||||
|
||||
```sh
|
||||
|
||||
@@ -72,7 +72,14 @@ cid = "bafyexample"
|
||||
self.assertEqual("placeholder", by_protocol["tor"]["address_status"])
|
||||
self.assertEqual("gemini://example.test/", by_protocol["gemini"]["url"])
|
||||
self.assertEqual("ipfs://bafyexample", by_protocol["ipfs"]["url"])
|
||||
self.assertEqual({"transport": "ipfs", "profile": "ipfs"}, by_protocol["ipfs"]["checks"])
|
||||
self.assertEqual(
|
||||
{
|
||||
"transport": "ipfs",
|
||||
"profile": "ipfs",
|
||||
"isolation": "transport-profile",
|
||||
},
|
||||
by_protocol["ipfs"]["checks"],
|
||||
)
|
||||
self.assertEqual(
|
||||
{
|
||||
"identity": "none",
|
||||
|
||||
@@ -38,7 +38,10 @@ class PreviewTest(unittest.TestCase):
|
||||
self.assertEqual("http://127.0.0.1:19101/", tor_root["url"])
|
||||
self.assertEqual({"transport": "clearnet", "profile": "clearnet"}, tor_root["checks"])
|
||||
self.assertEqual("http://preview.onion/", tor_root["published"]["url"])
|
||||
self.assertEqual({"transport": "tor", "profile": "tor"}, tor_root["published"]["checks"])
|
||||
self.assertEqual(
|
||||
{"transport": "tor", "profile": "tor", "isolation": "transport-profile"},
|
||||
tor_root["published"]["checks"],
|
||||
)
|
||||
self.assertEqual("preview", tor_root["address_status"])
|
||||
self.assertEqual("ready", tor_root["preview"]["status"])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user