Skip to content

Commit 8a391e7

Browse files
committed
Expose tester faucet in public RPC edge bundle
1 parent eabd49d commit 8a391e7

14 files changed

Lines changed: 35 additions & 32 deletions

apps/dashboard/public/data/flowchain-live-readiness-report.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"schema": "flowchain.live_readiness_dashboard_report.v0",
3-
"generatedAt": "2026-05-17T11:41:39.4118750Z",
3+
"generatedAt": "2026-05-17T11:46:44.6421208Z",
44
"status": "blocked",
55
"deploymentReady": false,
66
"packetShareable": false,
@@ -310,7 +310,7 @@
310310
"fileName": "public-deployment-contract-report.json",
311311
"schema": "flowchain.public_deployment_contract_report.v0",
312312
"status": "blocked",
313-
"generatedAt": "2026-05-17T11:41:39.4118750Z"
313+
"generatedAt": "2026-05-17T11:46:44.6421208Z"
314314
},
315315
{
316316
"fileName": "flowchain-live-infra-check-report.json",

docs/agent-runs/live-product-infra-rpc/PUBLIC_DEPLOYMENT_CONTRACT.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# FlowChain Public Deployment Contract
22

3-
Generated: 2026-05-17T11:41:39.4118750Z
3+
Generated: 2026-05-17T11:46:44.6421208Z
44
Status: blocked
55
Deployment ready: False
66
Packet shareable: False

docs/agent-runs/live-product-infra-rpc/PUBLIC_RPC_DEPLOYMENT_BUNDLE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# FlowChain Public RPC Deployment Bundle
22

3-
Generated: 2026-05-17T10:12:48.9521256Z
3+
Generated: 2026-05-17T11:43:59.8881590Z
44
Status: passed
55

66
This bundle packages placeholder-only files for an owner-operated HTTPS edge in front of the repo-owned private RPC origin `127.0.0.1:8787`.

docs/agent-runs/live-product-infra-rpc/PUBLIC_RPC_EDGE_TEMPLATE.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# FlowChain Public RPC Edge Template
22

3-
Generated: 2026-05-17T09:20:29.1430522Z
3+
Generated: 2026-05-17T11:43:38.6747459Z
44
Status: passed
55

66
FlowChain RPC is served by this repository on the private origin 127.0.0.1:8787. Public RPC means placing an owner-operated HTTPS edge in front of that origin.
@@ -16,8 +16,8 @@ This file contains placeholders only. Replace placeholders only on the owner hos
1616
| Public requests are rate-limited before they reach the private origin. | passed | template includes limit_req zone tied to FLOWCHAIN_RPC_RATE_LIMIT_PER_MINUTE |
1717
| Browser Origin headers and the edge-confirmed client address are forwarded so CORS and per-client rate limits can be enforced. | passed | template forwards Origin, Host, X-Forwarded-Proto, and sets X-Forwarded-For from the edge remote address |
1818
| Public /rpc dispatch is fail-closed to explicitly public-safe JSON-RPC read methods. | passed | origin enforces explicit allowlist and rejects transaction_submit, bridge_observation_submit, raw_json_get, and unknown methods |
19-
| The public edge does not proxy private write or admin routes; tester writes use the authenticated tester gateway only. | passed | template exposes /rpc, explicit read mirrors, and /tester/wallets/create/send; fallback location returns 404 |
20-
| Friends-and-family wallet creation and sends have a dedicated bearer-authenticated gateway with a send cap. | passed | origin requires FLOWCHAIN_TESTER_WRITE_* env names and bearer auth before /tester/wallets/create or /tester/wallets/send executes |
19+
| The public edge does not proxy private write or admin routes; tester writes use the authenticated tester gateway only. | passed | template exposes /rpc, explicit read mirrors, /tester/faucet, and /tester/wallets/create/send; fallback location returns 404 |
20+
| Friends-and-family wallet creation, faucet funding, and sends have a dedicated bearer-authenticated gateway with a unit cap. | passed | origin requires FLOWCHAIN_TESTER_WRITE_* env names and bearer auth before /tester/faucet, /tester/wallets/create, or /tester/wallets/send executes |
2121
| Oversized public request bodies are rejected before they reach the private origin. | passed | template sets client_max_body_size 256k and origin enforces 262144-byte JSON body cap |
2222
| Template stores placeholders and env names only. | passed | valuesPrinted=false |
2323

@@ -68,7 +68,7 @@ server {
6868
proxy_read_timeout 60s;
6969
}
7070
71-
location ~ ^/tester/wallets/(create|send)$ {
71+
location ~ ^/tester/(faucet|wallets/(create|send))$ {
7272
if ($request_method !~ ^(POST|OPTIONS)$) { return 405; }
7373
limit_req zone=flowchain_rpc_per_ip burst=5 nodelay;
7474
proxy_pass http://127.0.0.1:8787;
@@ -230,6 +230,7 @@ The origin only dispatches these public-safe JSON-RPC read methods through /rpc;
230230

231231
These paths are for capped friends-and-family pilot sends only. The origin rejects them unless FLOWCHAIN_TESTER_WRITE_ENABLED=true, a bearer token matching FLOWCHAIN_TESTER_WRITE_TOKEN_SHA256 is provided, and FLOWCHAIN_TESTER_MAX_SEND_UNITS caps the send amount.
232232

233+
- /tester/faucet
233234
- /tester/wallets/create
234235
- /tester/wallets/send
235236

docs/agent-runs/live-product-infra-rpc/public-deployment-contract-report.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"schema": "flowchain.public_deployment_contract_report.v0",
3-
"generatedAt": "2026-05-17T11:41:39.4118750Z",
3+
"generatedAt": "2026-05-17T11:46:44.6421208Z",
44
"status": "blocked",
55
"deploymentReady": false,
66
"packetShareable": false,

docs/agent-runs/live-product-infra-rpc/public-rpc-deployment-bundle-report.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"schema": "flowchain.public_rpc_deployment_bundle_report.v2",
3-
"generatedAt": "2026-05-17T10:12:48.9521256Z",
3+
"generatedAt": "2026-05-17T11:43:59.8881590Z",
44
"status": "passed",
55
"bundleDir": "docs/agent-runs/live-product-infra-rpc/public-rpc-deployment-bundle",
66
"flowChainRpcIsRepoOwned": true,

docs/agent-runs/live-product-infra-rpc/public-rpc-deployment-bundle/bundle-checks.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"schema": "flowchain.public_rpc_deployment_bundle_checks.v1",
3-
"generatedAt": "2026-05-17T10:12:48.8411263Z",
3+
"generatedAt": "2026-05-17T11:43:59.7322103Z",
44
"status": "passed",
55
"requiredPlaceholders": [
66
"\u003cFLOWCHAIN_RPC_PUBLIC_HOST\u003e",

docs/agent-runs/live-product-infra-rpc/public-rpc-deployment-bundle/nginx-flowchain-rpc.template.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ server {
4242
proxy_read_timeout 60s;
4343
}
4444

45-
location ~ ^/tester/wallets/(create|send)$ {
45+
location ~ ^/tester/(faucet|wallets/(create|send))$ {
4646
if ($request_method !~ ^(POST|OPTIONS)$) { return 405; }
4747
limit_req zone=flowchain_rpc_per_ip burst=5 nodelay;
4848
proxy_pass http://127.0.0.1:8787;

docs/agent-runs/live-product-infra-rpc/public-rpc-edge-template-report.json

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"schema": "flowchain.public_rpc_edge_template_report.v0",
3-
"generatedAt": "2026-05-17T09:20:29.1430522Z",
3+
"generatedAt": "2026-05-17T11:43:38.6747459Z",
44
"status": "passed",
55
"edgeTemplateReady": true,
66
"flowChainRpcIsRepoOwned": true,
@@ -123,6 +123,7 @@
123123
"/pilot/emergency-status"
124124
],
125125
"authenticatedTesterWritePaths": [
126+
"/tester/faucet",
126127
"/tester/wallets/create",
127128
"/tester/wallets/send"
128129
],
@@ -170,13 +171,13 @@
170171
"id": "edge-path-allowlist",
171172
"requirement": "The public edge does not proxy private write or admin routes; tester writes use the authenticated tester gateway only.",
172173
"status": "passed",
173-
"evidence": "template exposes /rpc, explicit read mirrors, and /tester/wallets/create|send; fallback location returns 404"
174+
"evidence": "template exposes /rpc, explicit read mirrors, /tester/faucet, and /tester/wallets/create|send; fallback location returns 404"
174175
},
175176
{
176177
"id": "authenticated-tester-write-gateway",
177-
"requirement": "Friends-and-family wallet creation and sends have a dedicated bearer-authenticated gateway with a send cap.",
178+
"requirement": "Friends-and-family wallet creation, faucet funding, and sends have a dedicated bearer-authenticated gateway with a unit cap.",
178179
"status": "passed",
179-
"evidence": "origin requires FLOWCHAIN_TESTER_WRITE_* env names and bearer auth before /tester/wallets/create or /tester/wallets/send executes"
180+
"evidence": "origin requires FLOWCHAIN_TESTER_WRITE_* env names and bearer auth before /tester/faucet, /tester/wallets/create, or /tester/wallets/send executes"
180181
},
181182
{
182183
"id": "body-size-limit",
@@ -236,7 +237,7 @@
236237
" proxy_read_timeout 60s;",
237238
" }",
238239
"",
239-
" location ~ ^/tester/wallets/(create|send)$ {",
240+
" location ~ ^/tester/(faucet|wallets/(create|send))$ {",
240241
" if ($request_method !~ ^(POST|OPTIONS)$) { return 405; }",
241242
" limit_req zone=flowchain_rpc_per_ip burst=5 nodelay;",
242243
" proxy_pass http://127.0.0.1:8787;",

docs/agent-runs/live-product-infra-rpc/public-rpc-validation-report.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"schema": "flowchain.public_rpc_validation_report.v0",
3-
"generatedAt": "2026-05-17T09:23:38.1211711Z",
3+
"generatedAt": "2026-05-17T11:46:33.0269536Z",
44
"status": "passed",
55
"validationScope": "local-control-plane-public-rpc-readiness-rehearsal",
66
"publicRpcReady": false,

0 commit comments

Comments
 (0)