Switch to instance, stub out relay methods

This commit is contained in:
Jon Staab
2025-09-24 10:11:37 -07:00
parent a337da1757
commit 9eedeceb6a
11 changed files with 286 additions and 83 deletions
+8 -4
View File
@@ -3,10 +3,14 @@
## Codebase Overview
- **zooid/config.go**: Defines `Config` struct with TOML tags for relay configuration (self info, groups, roles, data paths). Contains `loadConfig()` function that parses hostname-based config files from `configs/` directory.
- **zooid/config.go**: Defines `Config` struct with TOML tags for relay configuration (self, groups, management, blossom, roles, data). Contains `LoadConfig()` function and `IsMember()` method.
- **zooid/http.go**: Core HTTP handling with dynamic instance creation. `getInstance()` function loads config and creates khatru relay instances on-demand. `ServeHTTP()` function routes requests to appropriate relay instances based on hostname.
- **zooid/http.go**: Simple HTTP handler that calls `GetInstance()` and delegates to khatru relay.
- **zooid/util.go**: Environment variable utilities. `Env()` function with fallback support for configuration.
- **zooid/instance.go**: Core instance management. `Instance` struct holds config and khatru relay. `MakeInstance()` creates configured relay instances with handlers. `GetInstance()` provides singleton access with lazy loading.
- **cmd/relay/main.go**: Main entry point that starts HTTP server with graceful shutdown handling. Uses `zooid.ServeHTTP` as the handler wrapped in `http.HandlerFunc`.
- **zooid/blossom.go**: Blossom file storage integration with member-only access controls.
- **zooid/util.go**: Environment variable utilities with `Env()` function.
- **cmd/relay/main.go**: HTTP server entry point with graceful shutdown.