IntersectMBO / IntersectMBO/govtool
💡 Switch GovTool metadata fetching to Blockfrost IPFS gateway (preview, preprod, mainnet)
- Dominant language
- HTML
- Stars
- 21
- Forks
- 29
- Avg merge
- 2d 22h
- Merged PRs (30d)
- 7
Description
### Area
Other
### Is there new design needed?
No
### What?
Update GovTool’s metadata service and link resolver to use the **Blockfrost IPFS gateway** as the primary source for fetching metadata files instead of public gateways. Apply this across **preview**, **preprod**, and **mainnet**.
### Why?
Public IPFS gateways are intermittently unavailable, which leads GovTool to show “data missing” even when metadata exists on IPFS. Using the Blockfrost IPFS gateway improves reliability and availability, reducing false error states and improving user trust.
### How?
- **Primary gateway:** Resolve `ipfs://` (and bare CIDs) to the Blockfrost gateway URL
- **Client fetches:** Route all frontend and backend metadata fetches through the Blockfrost gateway
- **Graceful fallback (optional but recommended):**
- If the Blockfrost request fails (timeout / 5xx), retry once and then fall back to a secondary gateway (configurable) before declaring “data missing”
### (Optional) User Story with acceptance criteria
As a GovTool user,
I want metadata to load reliably even when public IPFS gateways are flaky,
so that I don’t see “data missing” when the files actually exist.
### Acceptance Criteria
- [ ] All metadata fetches (preview, preprod, mainnet) use the Blockfrost IPFS gateway by default.
- [ ] `ipfs://` and raw CIDs are correctly rewritten to the Blockfrost gateway URL.
- [ ] (If enabled) Fallback to a secondary gateway occurs after a failed primary attempt; errors are logged to Sentry with env tags.
- [ ] No regressions in Live Voting, Outcomes, Proposal Discussion Forum, or Budget Proposals metadata rendering.
- [ ] Configuration is environment-driven (no hardcoded domains in code).
Contributor guide
Assessment
This issue has not been assessed yet.