divviup / divviup/janus

`janus_client`: Cache HPKE configs based on `cache-control` header

Open
#3,159 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
70
Forks
16
Avg merge
4h 36m
Merged PRs (30d)
30

Description

Unless configs are provided to the builder, janus_client will fetch leader and helper HPKE configurations during construction and use them indefinitely, ignoring whatever cache-control HTTP header the aggregator may have provided. This is fine, since janus_client is generally used ephemerally and so whatever keys it sees will almost certainly remain valid for the lifetime in memory of the structure. But it'd be nice if we supported caching keys and automatically refetching them when they expire.

This is only particularly useful if keys are being stored somewhere besides memory, so we would want to introduce some kind of storage/cache abstraction for janus_client to use.

Contributor guide

No contributing guide indexed for this repository

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.

Research direction

Start at the janus_client builder and its construction-time fetching of leader and helper HPKE configurations. Design the storage/cache abstraction around the existing configuration flow, then verify that cache-control expiry causes configurations to be refetched; the issue names no files or tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
backend-api-design, cryptography
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.