Repository navigation
Conversation
…st/server_public_key
maksimu
marked this pull request as ready for review
October 16, 2026 17:35
This branch has not been deployed
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.
When a server rejects Commander's built-in transmission keys with
key_id=-1, Commander now asks it once for its own key atGET /api/rest/server_public_key, which Self-Managed Keeper serves since smk#448. It registers the answer in Commander's key table and in the embedded KSM SDK's, then retries. Against SMK, login,slack-app-setupand service-mode docker setup no longer needKEEPER_SERVER_PUBLIC_KEY_ID/KEEPER_SERVER_PUBLIC_KEY. The env vars still work and take effect first.Keeper's regions never answer with
key_id=-1, so Commander never calls the endpoint against them. If the endpoint is missing or the call fails (404, non-JSON, timeout, an unusable key), Commander logs at debug level and falls back to the existinginvalid_key_iderror. Each server is asked at most once per process. The key is trusted on the same TLS verification as every other request to that server.The unit tests cover the registration in both tables, the 404, non-JSON, network-error and bad-key cases, asking only once, an
execute_restround trip against a fake server with its own key (it fails with the old error when the fetch is disabled), and that a normal 200 never calls the endpoint. Not yet run against a live SMK.