tailscale / tailscale/tailcat

Server: allow revoking a client key at runtime (RemoveAllowedClient)

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

Nobody has claimed this yet.

Dominant language
Go
Stars
7.5k
Forks
311
Avg merge
7h 7m
Merged PRs (30d)
59

Description

I run tailcat serve --allow=… on an Android box and pair phones to it by adding their node keys. Server.AddAllowedClient lets me add a key while running, but there is no way to remove one: the only way to revoke a phone is to restart serve with a shorter --allow, which also drops every other client for a few seconds until they re-meow.

Would you take a Server.RemoveAllowedClient(k) that (1) makes further meows from k be ignored and (2) drops k from the network map if it is currently connected? For the CLI, an --allow-file=PATH that is re-read (on SIGHUP, or when the file changes) would cover the same need without a control socket.

Note: This is my first time working on an Open Source Project, every remark are welcomed :)

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 by tracing Server.AddAllowedClient and the serve --allow handling to understand how allowed keys and the network map are managed. Implementing this should make later meows from a removed key ignored and remove an already connected client; verify both behaviors with the project's existing tests or runtime checks.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
networking
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.