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>
42 lines
1.6 KiB
Markdown
42 lines
1.6 KiB
Markdown
# Implementation Plan — Issue #22: Scaffold Secrets Service Rust project
|
|
|
|
## Metadata
|
|
|
|
| Field | Value |
|
|
|---|---|
|
|
| Issue | [#22](https://git.shahondin1624.de/llm-multiverse/llm-multiverse/issues/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](issue-018.md) |
|
|
| Blocked by | #16 (completed) |
|
|
|
|
## Acceptance Criteria
|
|
|
|
- [x] Cargo workspace member created (`services/secrets/`)
|
|
- [x] Dependency on proto-gen crate
|
|
- [x] Tonic gRPC server boilerplate compiles
|
|
- [x] Configuration loading (address, port, backend selection)
|
|
- [x] 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)_
|