Skip to content
quarry Documentation
Login

Documentation

Summary

A site admin can take a repository down in two strengths. Disabled is for a notice about the content, copyright above all: the repository answers 451 to everybody except its own admins, who keep reading and writing so they can remove what was reported and ask for it back. Legal hold is for material that must be kept as evidence and shown to nobody, child abuse material or a law-enforcement request: the repository answers 451 to everybody including its owner, takes no writes, and can be neither deleted nor un-served until the hold is lifted. Both are reversible, keep the store byte for byte, tell the owner the reason in writing, and write a row to a takedown log that outlives the repository. Housekeeping delete (#933) stays a separate act and is refused while either is in force.

The rest of what the law asks is process, not code: a designated DMCA agent, a notice address and form, a counter-notice path, a repeat-infringer policy and an NCMEC runbook. They are listed under Process so the code and the paperwork land together.

Why

The operator is an individual in the United States, and the forge is hosted in the EU and open to EU users.

What the forge has today does not meet these. Stop serving deletes the registration row and its settings, so it is not reversible as a takedown; delete destroys evidence; neither tells the owner anything; and nothing is logged beyond the ops history.

Decisions

Settled by the owner on 2026-10-16.

  1. The operator is an individual in the USA. US law sets the obligations; the EU rules are met because they are cheap and match.
  2. Two strengths, disabled and legal hold. The owner of a disabled repository keeps access; nobody but a site admin reaches one on hold.
  3. Housekeeping delete stays. A site admin deletes abandoned and test repositories from the fleet (#933). It is a separate act from a takedown and is refused while a repository is disabled or on hold.

The two strengths

Disabled Legal hold
For a notice about the content: copyright, a host complaint, other unlawful content, a terms breach child abuse material, a preservation request, a law-enforcement order
Anonymous readers and other accounts 451 on every surface 451 on every surface
The repository's own admins (a) read, clone, pull and push as before, with a banner naming the notice 451, with a page saying the repository is held and nothing else
Writes allowed for its admins, so they can remove what was reported refused for everybody, so the evidence does not change
Mirror pulls (inbound) and mirror pushes (RFC 0022) paused paused
Webhooks and CI paused paused
Delete and stop serving refused refused
Who sets and lifts it a site admin, person or site token a site admin person only; a site token may neither set nor lift it
Store and settings kept untouched kept untouched

Both are a state on the repository's row, not a new registration, so lifting one puts the repository back exactly as it was. A held repository's store is excluded from any cleanup or compaction the forge runs, so its bytes stay as they were when the hold was set.

A site token may disable, because a host complaint or a removal order needs an answer in minutes and an agent may be the one awake. It may not place or lift a legal hold, because that is a judgment about evidence and about reporting to the authorities, and it is the operator's to make.

Every surface

451 Unavailable For Legal Reasons, with a body saying the repository is unavailable for legal reasons and, for a disabled one, the notice's category and date. The status is the one RFC 7725 defines for exactly this, and it tells a crawler and a cache that the absence is deliberate.

The owner is told

On disable the forge sends the repository's owner, and each of its admins with an email, a statement of reasons: what was taken down, the strength, the category, the date, the notice's reference, what was reported as unlawful (the URLs and the claimed work, for copyright), and what they can do: remove the material and ask for review, or file a counter-notice. The same text is the banner on a disabled repository.

On legal hold the owner is told only that the repository is unavailable for legal reasons. Saying more can warn a person under investigation and get in the way of it, and the DSA's duty to give reasons yields to that; the statement says what may be said and no more.

The takedown log

An append-only table, one row per act: the repository name, its owner at the time, the strength, the category, the notice reference, the actor and via (person, token, agent), the reason text, and when. The acts are disable, hold, restore, lift, counter-notice received, and reported to NCMEC (with the CyberTipline report number). Rows are never updated or deleted, and they survive the repository's deletion, because they are the repeat-infringer record and the evidence that the forge acted on time. The fleet shows them as a Takedowns tab.

Notices and counter-notices

A public page, /legal, names the DMCA agent and the abuse address, and links a notice form. The form asks for what DMCA §512(c)(3) and DSA Art. 16 both require: who is reporting and how to reach them, the URLs, the work or law claimed, the explanation, the good-faith statement and the statement that it is accurate, and a signature (a typed full name). A submitted notice lands in the fleet's Takedowns tab as an open notice and mails the site admins. The form takes nothing else and sends nothing to the reporter but an acknowledgement.

A notice is not acted on by itself. A site admin reads it and disables or declines, and the decision is logged with the notice.

The owner of a disabled repository files a counter-notice from its banner, with the DMCA's elements (the statement under penalty of perjury that it was removed by mistake, consent to jurisdiction, a signature). It is logged, mailed to the site admins, and the Takedowns tab shows the window: the earliest restore date (10 business days on) and the latest (14). The forge forwards the counter-notice to the claimant from the site admins' address. On the earliest date the row shows as due; a site admin restores it unless the claimant has said they have filed suit. Restoring is never automatic, because "they filed suit" arrives as an email the forge cannot read.

Repeat infringers

Each upheld copyright takedown, one that was not restored on a counter-notice, counts against the repository's owner at the time. At three in twelve months the fleet's people page marks the account, and the policy on /legal says the account will then be disabled. The decision to disable the account stays a site admin's, through the existing account controls, and is logged here too.

Process

The paperwork, which ships with rung 1 so the code is never ahead of it:

Not in this RFC

Build order

Rung Work
1 The hold state on the repository row, repo.disable, repo.hold, repo.restore and repo.lift ops, the takedown log, 451 on web, API and sync per the table, delete and stop serving refused under either, the fleet row's actions, the site token's limits; the process items above
2 Listings and search, bucket files unlinked, the Cloudflare purge and its sealed token, webhooks, CI and mirrors paused
3 The statement of reasons by mail and banner, /legal, the notice form, the Takedowns tab
4 Counter-notices and their window, the repeat-infringer count and mark

Testing