dfinity / dfinity/imcp2

Give OAuth client registrations a fixed inactivity lifetime

Open
#120 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
2
Forks
0
Avg merge
19h 27m
Merged PRs (30d)
34

Description

From the privacy-policy legal review of 2026-08-03: indefinite retention of OAuth client registrations until LRU displacement at the 10,000-entry cap "remains the clearest data-minimisation weakness."

Current behaviour (src/auth.rs, SharedClients): registrations are pseudonymous personal data persisted to OAUTH_CLIENTS_FILE; a registration is kept until displaced by the LRU once the store is full — for a rarely-used deployment, indefinitely. Every /oauth/authorize already marks its client used, so per-entry recency exists.

Asked for:

  1. Delete registrations after a fixed period of inactivity (the review suggests ~12 months) — a reaper sweep over the persisted store, using the recency the LRU already tracks (a timestamp will need to be added to the persisted entry; deserialization must default it for existing stores).
  2. Ideally, a deletion mechanism (DCR supports RFC 7592 management, or an operational path).

When it ships: update the retention row in the privacy policy (src/assets/privacy-policy.html + docs/icp-mcp-privacy-policy-draft.md), which currently states the indefinite-until-displaced behaviour honestly, and let the policy make the stronger promise.

Contributor guide

Open the contributing guide

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 in src/auth.rs at SharedClients and trace the persisted OAUTH_CLIENTS_FILE store and its existing LRU recency handling. Define how inactivity timestamps, legacy deserialization, sweeping, and client deletion fit together. Update src/assets/privacy-policy.html and docs/icp-mcp-privacy-policy-draft.md so the retention statement matches the shipped behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
authentication, documentation
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.