Files
llm-multiverse/implementation-plans/issue-020.md
shahondin1624 69d2f4a751 feat: implement Append gRPC endpoint with validation and integration tests (#20, #21)
Add input validation to the Append RPC handler (session_id, agent_id,
action, context.session_id) and create a full integration test suite
that spins up real gRPC servers to test the complete request/response
flow including hash chain integrity and concurrent access.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 07:59:04 +01:00

1.7 KiB

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

  • Append RPC validates required fields (session_id, agent_id, action)
  • Append RPC validates session context when provided
  • Append RPC returns success/error_message response
  • Input validation unit tests for all error paths
  • Session context validation (empty context.session_id rejected)

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