woikos
6523f0cd67
Implement DDD recommendations: domain errors, events, and services (v0.56.5)
...
- Add docs/GLOSSARY.md with 50+ ubiquitous language definitions
- Add pkg/domain/errors/ with structured domain error types (validation,
authorization, processing, policy, storage) and helper functions
- Add pkg/domain/events/ with domain event dispatcher supporting sync/async
publishing and 16 event types for system-wide notifications
- Add pkg/event/specialkinds/ registry for handling special event kinds
- Add pkg/event/ingestion/ service for orchestrating event processing pipeline
- Strengthen aggregate boundaries with accessor methods and deprecation comments
for ACL Registry, Server, and Listener
- Update DDD_ANALYSIS.md to reflect current architecture (v0.56.4)
Files modified:
- docs/GLOSSARY.md: NEW - ubiquitous language glossary
- pkg/domain/errors/errors.go: NEW - domain error types with 16 tests
- pkg/domain/events/events.go: NEW - 16 domain event types
- pkg/domain/events/dispatcher.go: NEW - event dispatcher with 10 tests
- pkg/event/specialkinds/registry.go: NEW - special kind handler registry
- pkg/event/ingestion/service.go: NEW - event processing orchestration
- pkg/acl/acl.go: Add accessor methods (GetMode, GetACLByType, etc.)
- pkg/acl/follows.go, managed.go, curating.go: Add Context() accessor
- app/server.go: Add accessor methods (GetConfig, Database, IsAdmin, IsOwner)
- app/listener.go: Add ServerContext, ServerConfig, ServerDatabase accessors
- DDD_ANALYSIS.md: Update analysis for current architecture
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
4 months ago
woikos
e20920d39b
Add split database and ACL binaries for modular deployment (v0.54.0)
...
- Split orly-db into orly-db-badger and orly-db-neo4j backends
- Split orly-acl into orly-acl-follows, orly-acl-managed, orly-acl-curation
- Add shared pkg/database/server/ for gRPC database service
- Add shared pkg/acl/server/ for gRPC ACL service
- Add pkg/acl/grpc/ client for relay-to-ACL communication
- Add gRPC proto definitions for ACL service (pkg/proto/orlyacl/)
- Update launcher to compute binary names from backend/mode settings
- When ACL disabled, relay runs in open mode (no restrictions)
- Add Makefile with all-split, arm64-split, and per-binary targets
- Include systemd service file for split IPC deployment
Files modified:
- Makefile: New build system with split binary targets
- app/config/config.go: Add ACL gRPC client config options
- cmd/orly-acl/: Legacy monolithic ACL server
- cmd/orly-acl-curation/main.go: Curation mode binary
- cmd/orly-acl-follows/main.go: Follows mode binary
- cmd/orly-acl-managed/main.go: Managed mode binary
- cmd/orly-db-badger/main.go: Badger backend binary
- cmd/orly-db-neo4j/main.go: Neo4j backend binary
- cmd/orly-launcher/config.go: Add DBBackend, compute binary names
- cmd/orly-launcher/supervisor.go: Handle no-ACL mode, add ACL health check
- main.go: Add gRPC ACL client initialization
- orly.service: Systemd service for split IPC mode
- pkg/acl/acl.go: Add gRPC ACL interface type
- pkg/acl/grpc/client.go: gRPC ACL client implementation
- pkg/acl/server/: Shared ACL gRPC server package
- pkg/database/server/: Shared database gRPC server package
- pkg/proto/orlyacl/: ACL service protobuf definitions
- pkg/version/version: v0.54.0
- proto/orlyacl/: ACL proto source files
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
4 months ago
mleku
c1bd05fb04
Adjust ACL behavior for "none" mode and make query cache optional
...
This commit allows skipping authentication, permission checks, and certain filters (e.g., deletions, expirations) when the ACL mode is set to "none" (open relay mode). It also introduces a configuration option to disable query caching to reduce memory usage. These changes improve operational flexibility for open relay setups and resource-constrained environments.
6 months ago
mleku
69e2c873d8
Refactor for interface clarity and dependency isolation.
...
Replaced inline interface literals with dedicated, documented interface definitions in `pkg/interfaces/`. Introduced `TimeoutError`, `PolicyChecker`, and `Neo4jResultIterator` interfaces to clarify design, improve maintainability, and resolve potential circular dependencies. Updated config and constant usage rules for consistency. Incremented version to v0.31.11.
6 months ago
mleku
1c376e6e8d
migrate to new nostr library
6 months ago
mleku
bcd79aa967
implemented nip-86 relay management API and added to relay client
7 months ago
mleku
2ba361c915
Add relay identity management and subscription enhancements.
...
- Introduced relay identity management for subscriptions and follow-list sync.
- Added `IdentityRequested` function to handle the `identity` subcommand.
- Implemented periodic follow-list synchronization for active subscribers.
- Enhanced payment handling to include payer pubkey and subscription updates.
- Added trial expiry and subscription expiry notifications.
8 months ago
mleku
110223fc4e
Migrate internal module imports to unified package path.
...
Replaced legacy `*.orly` module imports with `next.orly.dev/pkg` paths across the codebase for consistency. Removed legacy `go.mod` files from sub-packages, consolidating dependency management. Added Dockerfiles and configurations for benchmarking environments.
8 months ago
mleku
c9314bdbd0
Refactor `GetAccessLevel` to include address parameter, update all ACL implementations and handlers for enhanced contextual access control.
8 months ago
mleku
2491fd2738
wire up trigger to restart sync for ACL spider
8 months ago
mleku
f5a8c094e4
Introduce ACL registry with `follows` implementation, enhance `SaveEvent` for replaceable kinds, and refactor filter-based serial fetching. Update configs and dependencies.
8 months ago