Skip to content

[DBIP] Validate actionButtons link targets are resolvable #1954

Description

@jaasieldelgado131

Proposal type

Other; Modify column

Affected scope (files/folders/chains)

actionButtons columns in:

  • references/offers/*.csv
  • listings/all-networks/*.csv
  • listings/specific-networks/**/*.csv

Motivation / problem statement

actionButtons stores Markdown links that are rendered or consumed as user-facing actions. The repository documentation already distinguishes provider link fields from offer/listing Markdown links, but there is no guardrail that the Markdown target is actually resolvable by downstream consumers.

A local scan found 16 actionButtons Markdown links whose target is a relative path such as /rpc or /graph. These are ambiguous outside a specific deployment base URL:

  • static consumers, CSV processors, docs sites, or mirrors cannot know which host should own /rpc or /graph;
  • automated link checks cannot validate the target as a public URL;
  • the same value can accidentally resolve to a different route depending on where the data is rendered.

This is especially risky because references/offers/apis.csv contains reusable offer templates. Listings that inherit or copy these values can propagate the same ambiguous action URL across networks.

Detailed proposal

Add a schema/data validation rule for actionButtons Markdown link targets:

  • Parse every Markdown link inside actionButtons.
  • Accept targets that are explicit public URLs (http:// or https://) or explicit supported schemes such as mailto:.
  • Reject bare relative targets beginning with / unless Chain.Love intentionally defines a documented internal-route convention.
  • If internal routes are intended, add an explicit convention such as internal:/rpc or an internalRoute/actionRoute field so validators and downstream consumers can distinguish Chain.Love-owned routes from broken public URLs.

Current reproducible findings from a clean scan:

listings/specific-networks/arbitrum/apis.csv:109 chain-love-one-free-indexer -> /graph
listings/specific-networks/ethereum/apis.csv:94 chain-love-mainnet-free-indexer -> /graph
listings/specific-networks/filecoin/apis.csv:12 chain-love-calibnet-pay-as-you-go -> /rpc
listings/specific-networks/filecoin/apis.csv:13 chain-love-dedicated-fevm-archive-mainnet -> /rpc
listings/specific-networks/filecoin/apis.csv:14 chain-love-dedicated-full-archive-calibnet -> /rpc
listings/specific-networks/filecoin/apis.csv:15 chain-love-dedicated-full-archive-mainnet -> /rpc
listings/specific-networks/filecoin/apis.csv:16 chain-love-dedicated-recent-state-calibnet -> /rpc
listings/specific-networks/filecoin/apis.csv:17 chain-love-dedicated-recent-state-mainnet -> /rpc
listings/specific-networks/filecoin/apis.csv:18 chain-love-fevm-archive-mainnet-pay-as-you-go -> /rpc
listings/specific-networks/filecoin/apis.csv:19 chain-love-full-archive-mainnet-pay-as-you-go -> /rpc
listings/specific-networks/filecoin/apis.csv:20 chain-love-mainnet-free -> /rpc
listings/specific-networks/filecoin/apis.csv:21 chain-love-mainnet-free-indexer -> /graph
listings/specific-networks/filecoin/apis.csv:22 chain-love-mainnet-pay-as-you-go -> /rpc
references/offers/apis.csv:77 chain-love-dedicated -> /rpc
references/offers/apis.csv:78 chain-love-free -> /rpc
references/offers/apis.csv:80 chain-love-pay-as-you-go -> /rpc

One minimal check can reproduce the finding by extracting Markdown links from actionButtons and flagging targets that start with /.

Expected result after this DBIP:

  • actionButtons links are externally resolvable by default; or
  • internal Chain.Love routes are represented with an explicit, documented convention that validators can recognize.

Contact (optional)

@jaasieldelgado131

Rewards address (optional)

0xb43d90BB4E22A43D77e9bfbc2f1CA826ec1CaBF1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions