Support the Kubo RPC API authentication in the client

Open
#3,656 0 comments 0 reactions 1 assignee View on GitHub

Maintainers usually reply within 2 days

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
54/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
rust
Domain
backend, cli, security

Research direction

Start by locating ClientBuilder, IpfsFileDownloader, and the cardano-db download command, then trace how the client sends Kubo RPC requests and how command secrets are handled. The issue also calls for end-to-end coverage, potentially requiring IPFS devnet changes, and documentation updates. Done means optional credentials authenticate each downloader request and the CLI exposes them as a secret, with tests and documentation updated.

Written by the indexing model from the issue text.

Description

feature :rocket:

Why

Exposing an unprotected Kubo RPC API to a LAN or to the public internet is strongly discouraged, which forces the Kubo node and the client to run on the same machine.

What

Support the authentication of the Kubo RPC API in the client library and CLI.

How

  • Add optional credentials to the ClientBuilder and send them with each request of the IpfsFileDownloader
  • Add the option to the cardano-db download command, handled as a secret
  • Cover the authenticated download in the end to end tests? (would need modifications in IPFS devnet)
  • Update the documentation
Dominant language
Rust
Stars
155
Forks
52
Avg merge
2d 17h
Merged PRs (30d)
37

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from IntersectMBO/mithril

All issues in IntersectMBO/mithril

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.