diff --git a/ai/project_tracker.md b/ai/project_tracker.md index a4fa4ada..22584516 100644 --- a/ai/project_tracker.md +++ b/ai/project_tracker.md @@ -15,6 +15,7 @@ This document tracks the remaining tasks and their status for the Aevatar Framew | Feature | Status | Description | Unit Tests | Regression Tests | Integration Tests | Documentation | Dev Machine | |---------|--------|-------------|------------|------------------|-------------------|---------------|------------| +| PermissionEventBase | ✅ Completed | Implement PermissionEventBase class inheriting from EventBase with UserContext for permission management events | ✓ | ✗ | ✗ | ✓ | c6:c4:e5:e8:c6:4c | | ExceptionCatchAndPublish | 🚧 In Progress | Implement mechanism to catch GAgent EventHandler exceptions and publish them to Orleans Stream | ✗ | ✗ | ✗ | ✗ | 62:84:7a:e8:0f:65 | | Kafka Stream optimization | Not Started | Optimize Kafka streams for better performance and lower resource usage | ✗ | ✗ | ✗ | ✗ | | | End to end gagent streaming | Not Started | Implement complete end-to-end streaming for gagent | ✗ | ✗ | ✗ | ✗ | | @@ -92,7 +93,7 @@ This document tracks the remaining tasks and their status for the Aevatar Framew - *To be determined* ## Completed Tasks -- *None recorded yet* +- **PermissionEventBase** (2024-01-XX): Implemented abstract base class for permission-related events with UserContext propagation. Includes comprehensive documentation and follows Orleans serialization patterns. ## Notes - Update this tracker regularly as tasks progress diff --git a/src/Aevatar.PermissionManagement/PermissionEventBase.cs b/src/Aevatar.PermissionManagement/PermissionEventBase.cs new file mode 100644 index 00000000..da9e7de3 --- /dev/null +++ b/src/Aevatar.PermissionManagement/PermissionEventBase.cs @@ -0,0 +1,14 @@ +using Aevatar.Core.Abstractions; + +namespace Aevatar.PermissionManagement; + +public interface IPermissionEvent +{ + UserContext? UserContext { get; set; } +} + +[GenerateSerializer] +public abstract class PermissionEventBase : EventBase, IPermissionEvent +{ + [Id(0)] public UserContext? UserContext { get; set; } = new(); +} \ No newline at end of file