mirror of
https://relay.ngit.dev/npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr/ngit-grasp.git
synced 2026-10-05 15:08:24 +00:00
docs: rename deletion docs to repository lifecycle
This commit is contained in:
+1
-1
@@ -274,7 +274,7 @@
|
||||
# deleted and re-submission stays rejected. NIP-09 and NIP-62 are advertised in
|
||||
# NIP-11.
|
||||
#
|
||||
# See: docs/explanation/deletion-requests.md
|
||||
# See: docs/explanation/repository-lifecycle.md
|
||||
#
|
||||
# CLI: --deletion-request-disrespector
|
||||
# Default: false
|
||||
|
||||
@@ -78,7 +78,7 @@ blacklist, repository whitelist, and service de-listing), while
|
||||
`NGIT_DELETION_REQUEST_DISRESPECTOR=true` stores but does not act on user
|
||||
deletion/vanish requests for archival relays.
|
||||
|
||||
See [Deletion Request Support](docs/explanation/deletion-requests.md) for details.
|
||||
See [Repository Lifecycle](docs/explanation/repository-lifecycle.md) for details.
|
||||
|
||||
### Sophisticated Sync System (GRASP-02)
|
||||
|
||||
@@ -369,7 +369,7 @@ and whitelist reconciliation, archival disrespector mode, and service de-listing
|
||||
removal are implemented. Remaining work is operator-facing UX: richer holding
|
||||
management, explicit restore commands, and optional delayed archival policies.
|
||||
|
||||
See [Deletion Request Support](docs/explanation/deletion-requests.md).
|
||||
See [Repository Lifecycle](docs/explanation/repository-lifecycle.md).
|
||||
|
||||
### Mitigate DoS attack vector
|
||||
|
||||
|
||||
@@ -180,16 +180,17 @@ Explanation documentation helps you **understand concepts** and design decisions
|
||||
|
||||
---
|
||||
|
||||
### [Deletion Requests](deletion-requests.md)
|
||||
**Handling repository and event deletion**
|
||||
### [Repository Lifecycle](repository-lifecycle.md)
|
||||
**Handling repository removal, holding, archive, recovery, and purgatory**
|
||||
|
||||
**Topics:**
|
||||
- Deletion request architecture
|
||||
- Repository lifecycle architecture
|
||||
- Delete disrespector concept
|
||||
- Preventing left-pad scenarios
|
||||
- Archival policies
|
||||
- Holding, recovery, purgatory, and operator curation flows
|
||||
|
||||
**Read when:** You want to understand how ngit-grasp handles deletion events (planned feature)
|
||||
**Read when:** You want to understand how ngit-grasp keeps nostr state and git data aligned across deletion, vanish, moderation, recovery, and purgatory flows
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -213,7 +213,7 @@ Operators can opt into archival behaviour with
|
||||
`NGIT_DELETION_REQUEST_DISRESPECTOR`, which stores but does not act on user
|
||||
deletion/vanish requests.
|
||||
|
||||
Full details: [Deletion Request Support](deletion-requests.md).
|
||||
Full details: [Repository Lifecycle](repository-lifecycle.md).
|
||||
|
||||
#### [`events.rs`](src/nostr/events.rs) - Event Parsing
|
||||
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
# Deletion Request Support (NIP-09 and NIP-62)
|
||||
# Repository Lifecycle (Deletion, Holding, Archive, and Recovery)
|
||||
|
||||
## Overview
|
||||
|
||||
ngit-grasp implements optional support for NIP-09 deletion requests and NIP-62
|
||||
request-to-vanish events, allowing repository owners to remove their data from
|
||||
the relay while giving operators configurable archival behavior for left-pad
|
||||
resilience.
|
||||
ngit-grasp owns the lifecycle of repository-related nostr events and git data
|
||||
when a served repository scope is removed, restored, or quarantined. This covers
|
||||
NIP-09 deletion requests, NIP-62 request-to-vanish events, operator blacklist and
|
||||
whitelist reconciliation, service de-listing, holding/archive retention, recovery,
|
||||
and purgatory transitions.
|
||||
|
||||
## Core consistency invariant
|
||||
|
||||
@@ -14,16 +15,16 @@ and recovery:
|
||||
|
||||
> **Served nostr state must always match git refs we can actually serve.**
|
||||
|
||||
This invariant is the design center for deletion handling and a key rationale
|
||||
for purgatory. If the currently served repository state is deleted and no valid
|
||||
This invariant is the design center for lifecycle handling and a key rationale
|
||||
for purgatory. If the currently served repository state is removed and no valid
|
||||
rollback state exists, the relay must stop serving that state, park the
|
||||
announcement scope in purgatory, and wait for a promotable state before serving
|
||||
again.
|
||||
|
||||
## Ownership of deletion behavior
|
||||
## Ownership of lifecycle behavior
|
||||
|
||||
ngit-grasp disables backend auto-processing and owns NIP-09/NIP-62 handling in
|
||||
relay policy code:
|
||||
ngit-grasp disables backend auto-processing and owns NIP-09/NIP-62 lifecycle
|
||||
handling in relay policy code:
|
||||
|
||||
- main DB uses `process_nip09(false)` and `process_nip62(false)`
|
||||
(`src/nostr/builder.rs`)
|
||||
@@ -32,7 +33,7 @@ relay policy code:
|
||||
- holding DB uses `process_nip09(false)` and `process_nip62(false)`
|
||||
(`src/nostr/lifecycle/holding.rs`)
|
||||
|
||||
This keeps deletion behavior auditable and prevents the storage backends from
|
||||
This keeps lifecycle behavior auditable and prevents the storage backends from
|
||||
silently applying deletion semantics outside ngit-grasp policy code.
|
||||
|
||||
The full cascade, holding, archive, and lifecycle flow applies consistently to
|
||||
@@ -54,7 +55,8 @@ The "left-pad problem" refers to a 2016 incident where a critical npm package wa
|
||||
|
||||
### Three-Database Design
|
||||
|
||||
The deletion system uses three relay databases plus archive filesystem storage:
|
||||
The repository lifecycle system uses three relay databases plus archive
|
||||
filesystem storage:
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────┐
|
||||
@@ -176,7 +178,7 @@ deprecated in favor of the maintenance command.
|
||||
and still within holding retention
|
||||
- Still-blacklisted scopes are skipped
|
||||
|
||||
## Deletion Flow
|
||||
## Lifecycle Removal Flows
|
||||
|
||||
### Standard Mode (Respects Deletions)
|
||||
|
||||
@@ -491,12 +493,12 @@ Operators need ability to **force-delete** items from holding area before retent
|
||||
- It intentionally has no confirmation prompt, reason field, or operator field in
|
||||
the current CLI; richer operator UX is planned separately.
|
||||
|
||||
## Blacklist Deletion Integration
|
||||
## Operator Curation Integration
|
||||
|
||||
### Overview
|
||||
|
||||
Blacklist-triggered deletions use the **same infrastructure** as NIP-09 deletion
|
||||
requests and NIP-62 vanish lifecycle removals:
|
||||
Blacklist- and whitelist-triggered removals use the **same infrastructure** as
|
||||
NIP-09 deletion requests and NIP-62 vanish lifecycle removals:
|
||||
- Same holding database for 90-day retention
|
||||
- Same git archive mechanism
|
||||
- Same cascade deletion logic
|
||||
@@ -1176,8 +1176,8 @@ NGIT_DELETION_REQUEST_DISRESPECTOR=true
|
||||
NGIT_DELETION_REQUEST_DISRESPECTOR=false
|
||||
```
|
||||
|
||||
See [`docs/explanation/deletion-requests.md`](../explanation/deletion-requests.md)
|
||||
for the full design rationale.
|
||||
See [`docs/explanation/repository-lifecycle.md`](../explanation/repository-lifecycle.md)
|
||||
for the full lifecycle design rationale.
|
||||
|
||||
---
|
||||
|
||||
|
||||
+1
-1
@@ -289,7 +289,7 @@ let
|
||||
When disabled (default), deletion requests are honoured and NIP-09 and
|
||||
NIP-62 are advertised in NIP-11.
|
||||
|
||||
See: docs/explanation/deletion-requests.md
|
||||
See: docs/explanation/repository-lifecycle.md
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user