Add secrets-service crate with tonic gRPC boilerplate, config loading (host, port, backend selection), and stub GetSecret endpoint with input validation. Backend implementations will follow in #23 and #24. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1.6 KiB
1.6 KiB
Implementation Plan — Issue #22: Scaffold Secrets Service Rust project
Metadata
| Field | Value |
|---|---|
| Issue | #22 |
| Title | Scaffold Secrets Service Rust project |
| Milestone | Phase 3: Secrets Service |
| Labels | type:infrastructure, priority:high, lang:rust, service:secrets |
| Status | COMPLETED |
| Language | Rust |
| Related Plans | issue-018.md |
| Blocked by | #16 (completed) |
Acceptance Criteria
- Cargo workspace member created (
services/secrets/) - Dependency on proto-gen crate
- Tonic gRPC server boilerplate compiles
- Configuration loading (address, port, backend selection)
- Stub GetSecret endpoint with input validation
Architecture Analysis
Follows the same pattern as audit service scaffold (#18). Config supports BackendType enum (libsecret, keyring) for future backend implementations (#23, #24). Stub service validates inputs and returns Unimplemented until backends are wired in.
Files to Create/Modify
| File | Action | Purpose |
|---|---|---|
Cargo.toml |
Modify | Add services/secrets to workspace members |
services/secrets/Cargo.toml |
Create | Secrets service crate |
services/secrets/src/lib.rs |
Create | Module re-exports |
services/secrets/src/main.rs |
Create | Server entry point |
services/secrets/src/config.rs |
Create | Configuration with backend selection |
services/secrets/src/service.rs |
Create | SecretsService stub with validation |
Deviation Log
(No deviations)