Move secrets and MCP server storage to SQLite#571
Merged
Conversation
- Delete the dead test-only Vault-based env-secrets migration and point the startup migration tests at the production migrate_to_store path over a real SQLite-backed SecretStore - Extract shared legacy-import helpers (timestamped backup rename, is_toml_file) into fabro_db::legacy and parse_rfc3339_utc into fabro-db, replacing four per-crate copies - Take one secrets snapshot in migrate_to_store instead of per-name queries - Share one bind order between the MCP store INSERT and UPDATE statements - Return SecretEntry directly from entry_from_row - Unify the environment/MCP store blocking loaders into a generic load_store_blocking helper Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Collaborator
|
Rebased onto main now that #570 is merged: the three secrets commits dropped out (already on main), leaving the pure MCP-servers diff (2 commits). One import-line conflict with #585's snapshot change in fabro-db, resolved by keeping both. Migration sequence on this branch: 2026071101_secrets (main) → 2026071102_mcp_servers (this PR) — no renumbering needed. Local: fmt + clippy -D warnings clean, 1981/1981 tests across fabro-db/vault/mcp-store/auth/server/cli. 🤖 Generated with Claude Code |
swerner
force-pushed
the
move-secrets-mcp-servers-sqlite
branch
from
July 22, 2026 17:19
6bd855c to
4313998
Compare
This was referenced Jul 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
secretstable) with a one-time legacy import that renames the old file to a timestamped.bakmcps/*.tomlto SQLite (mcp_serverstable) with the same one-time legacy import pattern; reads come from an in-memory catalog, mutations use revision-guarded SQLSqlVaultCredentialSourceso LLM credential resolution reads from the SQLite-backed store and persists OAuth token refreshes via revision-checked CASfabro_db::legacyhelpers (timestamped backup rename,is_toml_file) andparse_rfc3339_utcreplace four per-crate copies; single bind order for MCP INSERT/UPDATE; genericload_store_blocking; snapshot-once env-secrets migrationTest plan
cargo nextest run -p fabro-db -p fabro-vault -p fabro-mcp-store -p fabro-variable -p fabro-environment -p fabro-server(803 tests pass)cargo build --workspace, nightlyclippy --workspace --all-targets -- -D warnings, andcargo fmt --check --allall clean🤖 Generated with Claude Code