Implementation Plan — Issue #20: Implement Append gRPC endpoint
Metadata
| Field |
Value |
| Issue |
#20 |
| Title |
Implement Append gRPC endpoint |
| Milestone |
Phase 2: Audit Service |
| Labels |
type:feature, priority:critical, lang:rust, service:audit |
| Status |
COMPLETED |
| Language |
Rust |
| Related Plans |
issue-019.md |
| Blocked by |
#19 (completed) |
Acceptance Criteria
Architecture Analysis
Extended the existing AuditServiceImpl::append() handler (implemented in #19) with proper input validation:
- Validates
session_id is non-empty
- Validates
agent_id is non-empty
- Validates
action is not UNSPECIFIED (0)
- Validates
context.session_id is non-empty when context is provided
- Returns
InvalidArgument status with descriptive messages on failure
Files to Create/Modify
| File |
Action |
Purpose |
services/audit/src/service.rs |
Modify |
Add input validation to Append handler |
services/audit/src/lib.rs |
Create |
Re-export modules for integration test access |
services/audit/src/main.rs |
Modify |
Use library crate instead of inline mod declarations |
Deviation Log
| Deviation |
Reason |
| Created lib.rs to expose modules |
Required for integration tests (#21) to access service types |