Skip to content

Conversation

@zfarrell
Copy link
Contributor

Resolves #17.

- Add Credential enum (None, SecretRef) for storing credential references
- Add ResolvedCredential<'a> borrowed view for runtime credential access
- Add with_resolved_credential() closure pattern for scoped plaintext
- Update connection_string() to accept ResolvedCredential parameter
- Remove plaintext password fields from Source variants
- Update discover_tables() and fetch_table() signatures
- Add resolve_connection_string() helper in duckdb and postgres drivers
- Update FetchOrchestrator to store and use secret_manager
- Add secret_key field to RivetEngineBuilder
- Auto-populate from RIVETDB_SECRET_KEY env var in new()
- Allow override via .secret_key() method for tests
- Reorder build() to create secret_manager before orchestrator
- Update datafetch tests for new API signatures
- Add test secret key generation to TestHarness
- Update PostgresFixture to use SecretRef credentials
- Store password as secret before Postgres connection tests
RIVETDB_SECRET_KEY is now required at engine startup. Without it,
connections with credentials would fail silently at query time.
Split CatalogManager secret methods into metadata (all providers) and
encrypted storage (EncryptedSecretManager only). Removes FK constraint
between tables. Adds rollback on metadata failure with test coverage.
Extract storage logic into SecretBackend trait, separating metadata
coordination from value persistence to enable pluggable backends.
@zfarrell zfarrell marked this pull request as ready for review December 18, 2025 23:34
@zfarrell zfarrell merged commit 69f9e50 into main Dec 18, 2025
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement secret manager

2 participants