mirror of
https://github.com/Such-Software/adaptive-multi-protocol-gateway.git
synced 2026-10-17 07:31:32 +02:00
Emit AMPB fixture manifests
This commit is contained in:
@@ -15,7 +15,7 @@ source site
|
||||
-> render profiles
|
||||
-> output roots
|
||||
-> daemon adapters
|
||||
-> clearnet / Tor / I2P / Gemini / Reticulum
|
||||
-> clearnet / Tor / I2P / Gemini / IPFS / Reticulum
|
||||
```
|
||||
|
||||
## Source adapters
|
||||
@@ -69,6 +69,10 @@ own output.
|
||||
: Gemini output. Converts headings, paragraphs, lists, code blocks, and links to `.gmi`.
|
||||
Inline links become block links near the paragraph by default.
|
||||
|
||||
`clearnet` for IPFS
|
||||
: Static web output suitable for a local IPFS gateway or later pinning. IPFS is treated
|
||||
as content-addressed distribution, not an anonymity layer.
|
||||
|
||||
`micron`
|
||||
: Reticulum/Nomad output. Produces terminal-oriented Micron markup with small pages,
|
||||
plain links, and no heavy media by default.
|
||||
@@ -82,6 +86,7 @@ Daemon adapters provide a common interface:
|
||||
- `render_config`: produce config snippets and complete managed configs.
|
||||
- `apply`: write approved managed config and start or reload services.
|
||||
- `health`: verify the selected transport can serve the generated output.
|
||||
- `manifest`: emit AMPB route/profile expectations for generated fixtures.
|
||||
|
||||
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.
|
||||
|
||||
+12
-1
@@ -66,6 +66,13 @@ daemon_policy = "auto"
|
||||
port = 1965
|
||||
max_asset_bytes = 1048576
|
||||
|
||||
[site.protocols.ipfs]
|
||||
enabled = false
|
||||
renderer = "clearnet"
|
||||
daemon = "ipfs"
|
||||
daemon_policy = "auto"
|
||||
cid = ""
|
||||
|
||||
[site.protocols.reticulum]
|
||||
enabled = false
|
||||
renderer = "micron"
|
||||
@@ -86,6 +93,7 @@ workflow.
|
||||
| tor | `privacy-html` | `tor` | `auto` |
|
||||
| i2p | `privacy-html` | `i2pd` | `auto` |
|
||||
| gemini | `gemtext` | `agate` | `auto` |
|
||||
| ipfs | `clearnet` | `ipfs` | `auto` |
|
||||
| reticulum | `micron` | `rnsd` | `auto` |
|
||||
|
||||
## Renderer defaults
|
||||
@@ -178,7 +186,7 @@ omits it or renders a safe alternate page.
|
||||
## Protocol-only deployments
|
||||
|
||||
Enabled protocols are independent. A config can omit clearnet entirely and publish only
|
||||
to I2P, Tor, Gemini, Reticulum, or any combination of supported targets.
|
||||
to I2P, Tor, Gemini, IPFS, Reticulum, or any combination of supported targets.
|
||||
|
||||
For an existing HTML site that should publish only to I2P:
|
||||
|
||||
@@ -209,6 +217,9 @@ script_policy = "strip"
|
||||
|
||||
This builds only the I2P output root and only the I2P/nginx plan snippets.
|
||||
|
||||
For IPFS, use the `clearnet` renderer to create a static output tree that can be served
|
||||
through a local gateway or pinned by a later publishing step.
|
||||
|
||||
## Plan artifacts
|
||||
|
||||
`ampg plan` prints expected artifact paths. `ampg plan --write-artifacts` writes
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
# Fixture Manifests
|
||||
|
||||
> Status: draft | Updated 2026-07-06 | Applies to: AMPG and AMPB compatibility checks
|
||||
|
||||
AMPG writes deterministic fixture manifests so AMPB can verify that generated site
|
||||
variants route to the expected browser transport and profile.
|
||||
|
||||
## Output
|
||||
|
||||
`ampg build` writes one manifest per site:
|
||||
|
||||
```text
|
||||
<site.outputs.root>/ampg-fixture-manifest.json
|
||||
```
|
||||
|
||||
The manifest contains public route expectations only:
|
||||
|
||||
- site id, domain, and canonical URL.
|
||||
- enabled protocol fixtures.
|
||||
- protocol renderer and relative output path.
|
||||
- route URL for AMPB checks.
|
||||
- expected AMPB transport and profile.
|
||||
|
||||
It must not contain private host inventory, hidden-service keys, tunnel keys, credentials,
|
||||
or deployment notes.
|
||||
|
||||
## Commands
|
||||
|
||||
```sh
|
||||
python3 -m ampg --config examples/wownero.gateway.toml build
|
||||
python3 -m ampg --config examples/wownero.gateway.toml manifest
|
||||
```
|
||||
|
||||
`build` emits the manifest after writing protocol outputs. `manifest` rewrites only the
|
||||
manifest and does not rebuild protocol outputs.
|
||||
|
||||
## Address Status
|
||||
|
||||
Some transports may not have final public addresses when a fixture is generated. In those
|
||||
cases AMPG uses route-valid placeholders such as `http://wownero.onion/` so AMPB can still
|
||||
verify transport selection without contacting the network.
|
||||
@@ -44,3 +44,13 @@ Notes:
|
||||
Notes:
|
||||
- Gemini serves generated Gemtext output directly.
|
||||
- Certificate and key paths are plan values until install/apply support exists.
|
||||
|
||||
## ipfs
|
||||
|
||||
- Protocols: ipfs
|
||||
- Default policy: `auto`
|
||||
- Generated artifacts: fixture manifest route expectations
|
||||
|
||||
Notes:
|
||||
- IPFS output is static web content for a local gateway or later pinning.
|
||||
- IPFS is content-addressed distribution, not an anonymity layer.
|
||||
|
||||
@@ -15,6 +15,7 @@ transport-specific variants with defaults:
|
||||
- Tor: privacy-hardened static HTML.
|
||||
- I2P: privacy-hardened static HTML.
|
||||
- Gemini: text-first `.gmi` pages.
|
||||
- IPFS: static output tree for gateway or pinning workflows.
|
||||
- Reticulum: compact Micron `.mu` pages.
|
||||
|
||||
## Source Adapter
|
||||
@@ -51,6 +52,10 @@ must not be required for AMPG adoption.
|
||||
index.gmi
|
||||
mining.gmi
|
||||
emission.gmi
|
||||
ipfs/
|
||||
index.html
|
||||
css/
|
||||
img/
|
||||
reticulum/
|
||||
index.mu
|
||||
mining.mu
|
||||
@@ -84,6 +89,11 @@ Use `gemtext`:
|
||||
- convert large media to plain download links.
|
||||
- skip repeated navigation noise.
|
||||
|
||||
### IPFS
|
||||
|
||||
Use `clearnet` static output for content-addressed publishing. AMPG emits route
|
||||
expectations for AMPB, but pinning and CID publication remain explicit operator actions.
|
||||
|
||||
### Reticulum
|
||||
|
||||
Use `micron`:
|
||||
@@ -114,6 +124,11 @@ daemon_policy = "auto"
|
||||
enabled = false
|
||||
daemon_policy = "auto"
|
||||
|
||||
[site.protocols.ipfs]
|
||||
enabled = false
|
||||
renderer = "clearnet"
|
||||
daemon_policy = "auto"
|
||||
|
||||
[site.protocols.reticulum]
|
||||
enabled = false
|
||||
daemon_policy = "auto"
|
||||
@@ -123,6 +138,7 @@ daemon_policy = "auto"
|
||||
|
||||
- `ampg plan` identifies the Wownero source tree and selected protocols.
|
||||
- `ampg build` creates clearnet, Tor, I2P, and Gemini output without requiring Markdown.
|
||||
- `ampg build` writes a fixture manifest that AMPB can check.
|
||||
- Tor output contains no `<script>` tags or inline event handlers.
|
||||
- Generated Gemini output has readable headings, paragraphs, and links.
|
||||
- Generated Micron output fits terminal-first browsing.
|
||||
@@ -133,6 +149,7 @@ daemon_policy = "auto"
|
||||
```sh
|
||||
python3 -m ampg --config examples/wownero.gateway.toml plan
|
||||
python3 -m ampg --config examples/wownero.gateway.toml build
|
||||
python3 -m ampg --config examples/wownero.gateway.toml manifest
|
||||
python3 -m ampg --config examples/i2p-only.gateway.toml plan
|
||||
python3 -m ampg --config examples/i2p-only.gateway.toml build
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user