docs: guide for granting headless environments read access to private docs - #2
Merged
Merged
Conversation
… docs A real session surfaced the gap: a remote coding agent working in a repo that uses doctier could not read any private doc (by design), but there was no documented path to deliberately grant such an environment access — the pieces (grant, DOCTIER_SSH_KEY, unlock/cat) had to be reverse-engineered from scattered README fragments, and the CI recipes only cover the no-key paths. - Add docs/agents.md: generate a dedicated passphrase-less key, have an existing recipient grant it (the environment cannot self-serve — a key added after encryption cannot decrypt earlier blobs), provision the private half as a secret via DOCTIER_SSH_KEY, then unlock/cat; plus the revoke flow and an explicit trade-off callout (dedicated key per environment, never a personal one). - Link the guide from the README's "Joining a repo" section (including the "agent pasted me an AGE ENCRYPTED FILE block" moment) and from the CI paragraph. - Point the failure UX at the guide: keyless `unlock`/`cat` now explain in one line how access is granted and why self-adding a key won't work; the wrong-key paths (not a recipient) do the same. - Align `unlock -h` on $DOCTIER_SSH_KEY, the variable the README documents (both variables remain honored). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MdC78SeCdRXuinYtMS4UEC
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A real session surfaced the gap: a remote coding agent working in a repo
that uses doctier could not read any private doc (by design), but there
was no documented path to deliberately grant such an environment access —
the pieces (grant, DOCTIER_SSH_KEY, unlock/cat) had to be
reverse-engineered from scattered README fragments, and the CI recipes
only cover the no-key paths.
existing recipient grant it (the environment cannot self-serve — a key
added after encryption cannot decrypt earlier blobs), provision the
private half as a secret via DOCTIER_SSH_KEY, then unlock/cat; plus
the revoke flow and an explicit trade-off callout (dedicated key per
environment, never a personal one).
the "agent pasted me an AGE ENCRYPTED FILE block" moment) and from the
CI paragraph.
unlock/catnow explainin one line how access is granted and why self-adding a key won't
work; the wrong-key paths (not a recipient) do the same.
unlock -hon $DOCTIER_SSH_KEY, the variable the READMEdocuments (both variables remain honored).
Co-Authored-By: Claude Fable 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01MdC78SeCdRXuinYtMS4UEC