Cyphrme / Cyphrme/Cyphr

Invite tokens: multi-use / expiring support (deferred)

Open
#117 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
3
Forks
0
Avg merge
1d 42m
Merged PRs (30d)
11

Description

**Deferred design decision — flagged so it is not lost.** The server's invite admission policy ships with **single-use** opaque tokens only (a deployment-issued file of `sha256(token)` hashes; each token admits exactly one new principal and is then marked spent). This was a deliberate scoping choice: single-use is the minimal correct core.

Two extensions were considered and explicitly deferred, not rejected:

1. **Multi-use tokens** — one token that admits up to N new principals (e.g. a shared invite link for an organization onboarding several principals).
2. **Expiring tokens** — a token valid only until a configured time.

The current file+hash token design was chosen specifically because both extensions fit it **without any wire-format change**: the token stays an opaque `X-Cyphr-Invite` header string; only the server-side token record gains a remaining-uses count and/or an expiry timestamp. So nothing about shipping single-use forecloses these.

Revisit when a real deployment need appears (org onboarding, time-boxed invitations). At that point decide: multi-use, expiring, both, and the default. Until then single-use stands.

Contributor guide

No contributing guide indexed for this repository

Research direction

This issue records deferred support for multi-use and expiring invite tokens; no implementation file or test is named. When a real deployment need appears, first read the current server-side file-and-hash token implementation and decide which extension, defaults, and combined behavior are required. Done means an agreed design and corresponding implementation scope, rather than work on the current single-use behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
authentication
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.