1- RFC 9421 Interoperability Field Test
2- =====================================
1+ RFC 9421 interoperability field test
2+ ====================================
33
44A Fedify-based server for testing RFC 9421 HTTP Message Signatures
55interoperability with Bonfire, Mastodon, and other fediverse implementations.
66
7+
78Prerequisites
89-------------
910
1011 - [ Deno] installed
1112 - Run ` mise run install ` (or ` pnpm install ` ) from the repo root
1213 - A public tunnel for testing (e.g., ` fedify tunnel ` )
1314
15+ [ Deno ] : https://deno.com/
16+
1417
1518Quick start
1619-----------
1720
18- ### 1. Start the server
21+ ### 1. start the server
1922
20- ~~~~ sh
23+ ~~~~ sh
2124# Default (RFC 9421 first knock + Accept-Signature challenge):
2225deno run -A main.ts
2326
@@ -28,22 +31,22 @@ CHALLENGE_NONCE=1 deno run -A main.ts
2831CHALLENGE_ENABLED=0 deno run -A main.ts
2932~~~~
3033
31- ### 2. Expose publicly with ` fedify tunnel `
34+ ### 2. expose publicly with ` fedify tunnel `
3235
3336In a separate terminal, from the repo root:
3437
35- ~~~~ sh
38+ ~~~~ sh
3639deno task cli tunnel 8000
3740~~~~
3841
3942Note the public URL (e.g., ` https://xxxxx.tunnel.example ` ).
4043
41- ### 3. Send test activities
44+ ### 3. send test activities
4245
4346Open your browser or use curl. Both GET (query params) and POST (JSON body)
4447are supported:
4548
46- ~~~~ sh
49+ ~~~~ sh
4750# Follow a remote actor (GET):
4851curl ' https://xxxxx.tunnel.example/send/follow?handle=@user@bonfire.example'
4952
@@ -65,13 +68,13 @@ Configuration
6568
6669All configuration is via environment variables:
6770
68- | Variable | Default | Description |
69- | --------------------- | -------------| -------------------------------------------|
70- | ` PORT ` | ` 8000 ` | Server listen port |
71- | ` FIRST_KNOCK ` | ` rfc9421 ` | Initial signature spec (` rfc9421 ` or ` draft-cavage-http-signatures-12 ` ) |
72- | ` CHALLENGE_ENABLED ` | (enabled) | Set to ` 0 ` to disable ` Accept-Signature ` on ` 401 ` |
73- | ` CHALLENGE_NONCE ` | (disabled) | Set to ` 1 ` to include one-time nonce |
74- | ` NONCE_TTL ` | ` 300 ` | Nonce time-to-live in seconds |
71+ | Variable | Default | Description |
72+ | ------------------- | ---------- | ----------------------------------------------------------------------- |
73+ | ` PORT ` | ` 8000 ` | Server listen port |
74+ | ` FIRST_KNOCK ` | ` rfc9421 ` | Initial signature spec (` rfc9421 ` or ` draft-cavage-http-signatures-12 ` ) |
75+ | ` CHALLENGE_ENABLED ` | (enabled) | Set to ` 0 ` to disable ` Accept-Signature ` on ` 401 ` |
76+ | ` CHALLENGE_NONCE ` | (disabled) | Set to ` 1 ` to include one-time nonce |
77+ | ` NONCE_TTL ` | ` 300 ` | Nonce time-to-live in seconds |
7578
7679
7780Endpoints
@@ -99,7 +102,7 @@ All send endpoints accept GET (query params) or POST (JSON body).
99102Test scenarios
100103--------------
101104
102- ### Scenario A: Fedify -> Bonfire (outbound)
105+ ### Scenario A: Fedify -> bonfire (outbound)
103106
1041071 . Start the server and expose via tunnel.
1051082 . Use ` /send/follow ` and ` /send/note ` to send activities to a Bonfire actor.
@@ -124,5 +127,3 @@ Test scenarios
1241271 . Start the server (optionally with challenge enabled).
1251282 . From a Mastodon account, follow ` @test@<your-domain> ` .
1261293 . Check the ` /log ` endpoint and server logs.
127-
128- [ Deno ] : https://deno.com/
0 commit comments