mirror of
https://relay.ngit.dev/npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr/ngit-grasp.git
synced 2026-10-05 15:08:24 +00:00
fix: properly format ID fields in issue files
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
# Event Signature Verification
|
# Event Signature Verification
|
||||||
|
|
||||||
|
**ID:** 1bb0
|
||||||
|
|
||||||
## Issue
|
## Issue
|
||||||
|
|
||||||
We need to verify that event signatures are being checked for every event we store or issue over websockets. Currently unclear if rust-nostr is doing this automatically or if we need explicit verification.
|
We need to verify that event signatures are being checked for every event we store or issue over websockets. Currently unclear if rust-nostr is doing this automatically or if we need explicit verification.
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
# Poor Naughty List Identification
|
# Poor Naughty List Identification
|
||||||
|
|
||||||
|
**ID:** 1f4f
|
||||||
|
|
||||||
## Issue Summary
|
## Issue Summary
|
||||||
|
|
||||||
We need to detect malicious behavior from clients and relays to protect our system from abuse, DoS attacks, and bandwidth exhaustion. This should feed into a reputation system or connection throttling/banning mechanism.
|
We need to detect malicious behavior from clients and relays to protect our system from abuse, DoS attacks, and bandwidth exhaustion. This should feed into a reputation system or connection throttling/banning mechanism.
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
# NIP-86 Relay Management API
|
# NIP-86 Relay Management API
|
||||||
|
|
||||||
|
**ID:** 2cdc
|
||||||
|
|
||||||
## Issue Summary
|
## Issue Summary
|
||||||
|
|
||||||
Implement NIP-86 (Relay Management API) to provide authenticated administrative control over the relay. This enables operators to blacklist users, delete repositories, ban event posting, and perform other management actions through a standardized API.
|
Implement NIP-86 (Relay Management API) to provide authenticated administrative control over the relay. This enables operators to blacklist users, delete repositories, ban event posting, and perform other management actions through a standardized API.
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
# Issue: ngit_repositories_total Metric Incorrectly Reports 0
|
# Issue: ngit_repositories_total Metric Incorrectly Reports 0
|
||||||
|
|
||||||
|
**ID:** 76fe
|
||||||
|
|
||||||
**Date Discovered:** 2026-01-12
|
**Date Discovered:** 2026-01-12
|
||||||
**Date Resolved:** 2026-01-12
|
**Date Resolved:** 2026-01-12
|
||||||
**Priority:** Medium
|
**Priority:** Medium
|
||||||
@@ -17,14 +19,20 @@ The `ngit_repositories_total` Prometheus metric reports 0 even though:
|
|||||||
**Current behavior:**
|
**Current behavior:**
|
||||||
```bash
|
```bash
|
||||||
# Metric shows 0
|
# Metric shows 0
|
||||||
|
|
||||||
|
**ID:** 76fe
|
||||||
$ curl -s http://localhost:8082/metrics | grep ngit_repositories_total
|
$ curl -s http://localhost:8082/metrics | grep ngit_repositories_total
|
||||||
ngit_repositories_total 0
|
ngit_repositories_total 0
|
||||||
|
|
||||||
# But 15 repos exist on disk
|
# But 15 repos exist on disk
|
||||||
|
|
||||||
|
**ID:** 76fe
|
||||||
$ find /persistent/ngit-danconwaydev-com-ngit-grasp/git/ -name '*.git' -type d | wc -l
|
$ find /persistent/ngit-danconwaydev-com-ngit-grasp/git/ -name '*.git' -type d | wc -l
|
||||||
15
|
15
|
||||||
|
|
||||||
# And git access works
|
# And git access works
|
||||||
|
|
||||||
|
**ID:** 76fe
|
||||||
$ git ls-remote https://ngit.danconwaydev.com/npub15qy.../ngit-grasp.git
|
$ git ls-remote https://ngit.danconwaydev.com/npub15qy.../ngit-grasp.git
|
||||||
a63dc8a9e5f9cad50f4ea7c6c5d2ed544bc70656 HEAD
|
a63dc8a9e5f9cad50f4ea7c6c5d2ed544bc70656 HEAD
|
||||||
```
|
```
|
||||||
@@ -84,9 +92,13 @@ The metric currently counts repositories **released from purgatory** (fully sync
|
|||||||
### Test 1: Verify Current Count
|
### Test 1: Verify Current Count
|
||||||
```bash
|
```bash
|
||||||
# Manual count
|
# Manual count
|
||||||
|
|
||||||
|
**ID:** 76fe
|
||||||
find /persistent/ngit-danconwaydev-com-ngit-grasp/git/ -name '*.git' -type d | wc -l
|
find /persistent/ngit-danconwaydev-com-ngit-grasp/git/ -name '*.git' -type d | wc -l
|
||||||
|
|
||||||
# Should match metric
|
# Should match metric
|
||||||
|
|
||||||
|
**ID:** 76fe
|
||||||
curl -s http://localhost:8082/metrics | grep ngit_repositories_total
|
curl -s http://localhost:8082/metrics | grep ngit_repositories_total
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -95,22 +107,34 @@ Test with ngit-grasp repository specifically:
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Clone the repository
|
# Clone the repository
|
||||||
|
|
||||||
|
**ID:** 76fe
|
||||||
git clone https://ngit.danconwaydev.com/npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr/ngit-grasp.git /tmp/ngit-grasp-test
|
git clone https://ngit.danconwaydev.com/npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr/ngit-grasp.git /tmp/ngit-grasp-test
|
||||||
|
|
||||||
# Verify commit history exists
|
# Verify commit history exists
|
||||||
|
|
||||||
|
**ID:** 76fe
|
||||||
cd /tmp/ngit-grasp-test
|
cd /tmp/ngit-grasp-test
|
||||||
git log --oneline | head -20
|
git log --oneline | head -20
|
||||||
|
|
||||||
# Check specific commit matches production
|
# Check specific commit matches production
|
||||||
|
|
||||||
|
**ID:** 76fe
|
||||||
git log -1 a63dc8a9e5f9cad50f4ea7c6c5d2ed544bc70656
|
git log -1 a63dc8a9e5f9cad50f4ea7c6c5d2ed544bc70656
|
||||||
|
|
||||||
# Verify files exist
|
# Verify files exist
|
||||||
|
|
||||||
|
**ID:** 76fe
|
||||||
ls -la
|
ls -la
|
||||||
|
|
||||||
# Check branch structure
|
# Check branch structure
|
||||||
|
|
||||||
|
**ID:** 76fe
|
||||||
git branch -r
|
git branch -r
|
||||||
|
|
||||||
# Cleanup
|
# Cleanup
|
||||||
|
|
||||||
|
**ID:** 76fe
|
||||||
cd /tmp
|
cd /tmp
|
||||||
rm -rf ngit-grasp-test
|
rm -rf ngit-grasp-test
|
||||||
```
|
```
|
||||||
@@ -118,12 +142,18 @@ rm -rf ngit-grasp-test
|
|||||||
### Test 3: After Fix - Count Accuracy
|
### Test 3: After Fix - Count Accuracy
|
||||||
```bash
|
```bash
|
||||||
# Restart service
|
# Restart service
|
||||||
|
|
||||||
|
**ID:** 76fe
|
||||||
sudo systemctl restart ngit-grasp-production
|
sudo systemctl restart ngit-grasp-production
|
||||||
|
|
||||||
# Wait 30 seconds for startup
|
# Wait 30 seconds for startup
|
||||||
|
|
||||||
|
**ID:** 76fe
|
||||||
sleep 30
|
sleep 30
|
||||||
|
|
||||||
# Check metric matches disk
|
# Check metric matches disk
|
||||||
|
|
||||||
|
**ID:** 76fe
|
||||||
DISK_COUNT=$(ssh dc@ngit.danconwaydev.com "sudo find /persistent/ngit-danconwaydev-com-ngit-grasp/git/ -name '*.git' -type d | wc -l")
|
DISK_COUNT=$(ssh dc@ngit.danconwaydev.com "sudo find /persistent/ngit-danconwaydev-com-ngit-grasp/git/ -name '*.git' -type d | wc -l")
|
||||||
METRIC_COUNT=$(ssh dc@ngit.danconwaydev.com "curl -s http://localhost:8082/metrics | grep 'ngit_repositories_total ' | awk '{print \$2}'")
|
METRIC_COUNT=$(ssh dc@ngit.danconwaydev.com "curl -s http://localhost:8082/metrics | grep 'ngit_repositories_total ' | awk '{print \$2}'")
|
||||||
|
|
||||||
@@ -254,12 +284,18 @@ $ cargo test --test repository_creation
|
|||||||
**Verification commands:**
|
**Verification commands:**
|
||||||
```bash
|
```bash
|
||||||
# Check metric value (triggers a count)
|
# Check metric value (triggers a count)
|
||||||
|
|
||||||
|
**ID:** 76fe
|
||||||
curl -s http://localhost:8082/metrics | grep ngit_repositories_total
|
curl -s http://localhost:8082/metrics | grep ngit_repositories_total
|
||||||
|
|
||||||
# Check disk count (should match within 15s)
|
# Check disk count (should match within 15s)
|
||||||
|
|
||||||
|
**ID:** 76fe
|
||||||
sudo find /persistent/ngit-danconwaydev-com-ngit-grasp/git/ -name '*.git' -type d | wc -l
|
sudo find /persistent/ngit-danconwaydev-com-ngit-grasp/git/ -name '*.git' -type d | wc -l
|
||||||
|
|
||||||
# Multiple requests should show same count (idempotent)
|
# Multiple requests should show same count (idempotent)
|
||||||
|
|
||||||
|
**ID:** 76fe
|
||||||
curl -s http://localhost:8082/metrics | grep ngit_repositories_total
|
curl -s http://localhost:8082/metrics | grep ngit_repositories_total
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
# Management Dashboard
|
# Management Dashboard
|
||||||
|
|
||||||
|
**ID:** 7d0b
|
||||||
|
|
||||||
## Issue Summary
|
## Issue Summary
|
||||||
|
|
||||||
We need a web-based management dashboard to monitor relay health, view storage and usage statistics, and provide basic operational visibility. This dashboard should display key metrics about relay operations, resource utilization, and usage patterns.
|
We need a web-based management dashboard to monitor relay health, view storage and usage statistics, and provide basic operational visibility. This dashboard should display key metrics about relay operations, resource utilization, and usage patterns.
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
# Storage Limits and Quota Management
|
# Storage Limits and Quota Management
|
||||||
|
|
||||||
|
**ID:** 8430
|
||||||
|
|
||||||
## Issue Summary
|
## Issue Summary
|
||||||
|
|
||||||
We currently have no storage limits or quota enforcement, allowing users to push arbitrarily large repositories (e.g., 20GB+) and potentially fill the relay's disk. We need configurable storage limits at multiple levels and graceful handling when approaching disk capacity.
|
We currently have no storage limits or quota enforcement, allowing users to push arbitrarily large repositories (e.g., 20GB+) and potentially fill the relay's disk. We need configurable storage limits at multiple levels and graceful handling when approaching disk capacity.
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
# Deletion Request Support (NIP-09)
|
# Deletion Request Support (NIP-09)
|
||||||
|
|
||||||
|
**ID:** b905
|
||||||
|
|
||||||
**Status:** Planning Complete, Ready for Implementation
|
**Status:** Planning Complete, Ready for Implementation
|
||||||
**Priority:** Medium
|
**Priority:** Medium
|
||||||
**Complexity:** High (graph algorithms, multi-database coordination)
|
**Complexity:** High (graph algorithms, multi-database coordination)
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
# Database Backend Evaluation
|
# Database Backend Evaluation
|
||||||
|
|
||||||
|
**ID:** cc36
|
||||||
|
|
||||||
## Issue Summary
|
## Issue Summary
|
||||||
|
|
||||||
We currently lack guidance on when to use nostrdb vs lmdb as the database backend. We need to perform an efficiency review comparing these backends and evaluate caching strategies (especially tag caches and filter-related caching) to provide clear recommendations and optimize query performance.
|
We currently lack guidance on when to use nostrdb vs lmdb as the database backend. We need to perform an efficiency review comparing these backends and evaluate caching strategies (especially tag caches and filter-related caching) to provide clear recommendations and optimize query performance.
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
# Defensive Relay Features
|
# Defensive Relay Features
|
||||||
|
|
||||||
|
**ID:** d6ee
|
||||||
|
|
||||||
## Issue Summary
|
## Issue Summary
|
||||||
|
|
||||||
Implement comprehensive rate limiting and resource controls to protect the relay from abuse, whether malicious or accidental. This includes connection limits, subscription limits, event rate limiting, and HTTP request throttling.
|
Implement comprehensive rate limiting and resource controls to protect the relay from abuse, whether malicious or accidental. This includes connection limits, subscription limits, event rate limiting, and HTTP request throttling.
|
||||||
|
|||||||
Reference in New Issue
Block a user