feat(keyring): credential-keyring module (split from #181) - #188
feat(keyring): credential-keyring module (split from #181)#188raymondginger2018-sudo wants to merge 2 commits into
Conversation
|
@Zongwei9888 Per your 08-17 suggestion on #181, this is the keyring module split out as an independent PR: new files only ( CI status: Python CI / Desktop CI / Linting all green. The Security CI failure is repo-wide and unrelated to this PR — the sidecar lock pins Ready for review whenever you have a moment — this one and #189 are the two that can merge in any order. |
GenAI course lesson 09: never put secrets in plaintext config. Keyring stores secrets out-of-band (DEEPCODE_KEYRING env knob), get/set/delete, secret-masked repr. All new files; no existing behavior touched.
7e1baa8 to
7e88b9d
Compare
|
Closing as cleanup after #200 — thanks for your patience. For the record: this is a clean new-module PR (no duplicate on upstream/main), but as it stands it has no runtime call site wired in (the module is not yet invoked by config resolution), which per the #200 feedback is the shape that will not be accepted on its own. Parking it rather than leaving it stale: the branch stays on my fork, and I can reopen with the call-site wiring once the current narrow PR (#204) lands. Happy to re-scope if you prefer. |
|
Apologies for the late reply. We did not take this because DeepCode already has a hardened credential store — The shape that would be welcome: an optional keyring backend for |
Summary
Splits the keyring module out of #181 (maintainer suggestion: split the +3031-line PR so each module can merge independently). This PR is new files only — no existing behavior is modified.
GenAI course lesson 09: secrets must not live in plaintext config.
core/keyring.pyprovides:Keyringstores secrets out-of-band (env knobDEEPCODE_KEYRING, default off)get/set/delete/has, secret-masked repr (never prints values)DEEPCODE_KEYRING=memin tests)Tests
tests/test_keyring.py— 13 passed locally (also covered by CI).