bud 08 implemented
This commit is contained in:
@@ -175,14 +175,46 @@ This document tracks the implementation status of ginxsom, a high-performance Fa
|
||||
|
||||
---
|
||||
|
||||
## BUD-08: NIP-94 Metadata ⚪ **NOT IMPLEMENTED**
|
||||
## BUD-08: NIP-94 File Metadata Tags ✅ **COMPLETE**
|
||||
|
||||
*Optional feature - not currently planned*
|
||||
### NIP-94 Integration
|
||||
- [x] Configuration system with SQLite server_config table
|
||||
- [x] `nip94_enabled` configuration key (default: true)
|
||||
- [x] `cdn_origin` configuration key (default: "http://localhost:9001")
|
||||
- [x] Centralized MIME type to extension mapping [`mime_to_extension()`](src/main.c:2024)
|
||||
- [x] Canonical blob URL generation [`nip94_build_blob_url()`](src/main.c:2055)
|
||||
- [x] NIP-94 metadata field emission [`nip94_emit_field()`](src/main.c:2201)
|
||||
|
||||
- [ ] NIP-94 tag generation
|
||||
- [ ] Extended blob descriptor responses
|
||||
- [ ] Magnet link generation
|
||||
- [ ] Metadata compatibility testing
|
||||
### Image Dimension Detection
|
||||
- [x] PNG dimension parsing from IHDR chunk [`parse_png_dimensions()`](src/main.c:2065)
|
||||
- [x] JPEG dimension parsing from SOF0/SOF2 markers [`parse_jpeg_dimensions()`](src/main.c:2089)
|
||||
- [x] WebP dimension parsing for VP8/VP8L/VP8X formats [`parse_webp_dimensions()`](src/main.c:2141)
|
||||
- [x] Universal dimension dispatcher [`nip94_get_dimensions()`](src/main.c:2184)
|
||||
|
||||
### Integration Points
|
||||
- [x] PUT /upload endpoint enhanced with NIP-94 metadata
|
||||
- [x] PUT /mirror endpoint enhanced with NIP-94 metadata
|
||||
- [x] Configuration-driven origin override for CDN support
|
||||
- [x] Conditional metadata emission based on `nip94_enabled` setting
|
||||
- [x] Proper JSON comma handling for optional nip94 field
|
||||
|
||||
### NIP-94 Tags Implemented
|
||||
- [x] `url` tag - Canonical blob URL with proper origin and extension
|
||||
- [x] `m` tag - MIME type (Content-Type)
|
||||
- [x] `x` tag - SHA-256 hash (lowercase hex)
|
||||
- [x] `size` tag - File size in bytes
|
||||
- [x] `dim` tag - Image dimensions (e.g., "1x1", "1920x1080") when available
|
||||
|
||||
### Configuration Keys
|
||||
- `nip94_enabled` (boolean): Enable/disable NIP-94 metadata emission (default: true)
|
||||
- `cdn_origin` (string): Base URL for blob URLs (default: "http://localhost:9001")
|
||||
|
||||
### Testing Status
|
||||
- [x] NIP-94 minimal tags (url, m, x, size) present in responses
|
||||
- [x] Image dimension detection working for PNG 1x1 test case
|
||||
- [x] Configuration-based enable/disable functionality
|
||||
- [x] CDN origin override affecting both descriptor and nip94 URLs
|
||||
- [x] Mirror endpoint NIP-94 integration (network-dependent)
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user