This commit is contained in:
Evan Jarrett
2026-01-04 23:37:31 -06:00
parent e5e59fdcbf
commit 487fc8a47e
16 changed files with 232 additions and 232 deletions
+11 -11
View File
@@ -507,13 +507,13 @@ GET /xrpc/io.atcr.hold.getQuotaBreakdown - Storage by repository
- Email/webhook notifications
- Grace period before hard enforcement
### 3. Berth-Based Quotas (Implemented)
### 3. Tier-Based Quotas (Implemented)
ATCR uses nautical-themed "berths" for quota tiers, configured via `quotas.yaml`:
ATCR uses quota tiers to limit storage per crew member, configured via `quotas.yaml`:
```yaml
# quotas.yaml
berths:
tiers:
deckhand: # Entry-level crew
quota: 5GB
bosun: # Mid-level crew
@@ -522,21 +522,21 @@ berths:
quota: 100GB
defaults:
new_crew_berth: deckhand # Default berth for new crew members
new_crew_tier: deckhand # Default tier for new crew members
```
| Berth | Limit | Description |
|-------|-------|-------------|
| Tier | Limit | Description |
|------|-------|-------------|
| deckhand | 5 GB | Entry-level crew member |
| bosun | 50 GB | Mid-level crew member |
| quartermaster | 100 GB | Senior crew member |
| owner (captain) | Unlimited | Hold owner always has unlimited |
**Berth Resolution:**
**Tier Resolution:**
1. If user is captain (owner) → unlimited
2. If crew member has explicit berth → use that berth's limit
3. If crew member has no berth → use `defaults.new_crew_berth`
4. If default berth not found → unlimited
2. If crew member has explicit tier → use that tier's limit
3. If crew member has no tier → use `defaults.new_crew_tier`
4. If default tier not found → unlimited
**Crew Record Example:**
```json
@@ -545,7 +545,7 @@ defaults:
"member": "did:plc:alice123",
"role": "writer",
"permissions": ["blob:write"],
"berth": "bosun",
"tier": "bosun",
"addedAt": "2026-01-04T12:00:00Z"
}
```