feat(auth): add CLI auth login flow with farmer validation and audit wiring#273
Merged
Conversation
…wiring Add auth.login NATS endpoint that provides a formal CLI-to-farmer authentication handshake. The CLI presents its signed token (containing the user's public key) and the farmer validates it against configured users, returning identity, role, permissions, and admin status. Changes: - Add auth.login NATS subject and handler (public method, handles own auth) - Add LoginResponse type with full permission summary - Add client.Login() and client.ValidateAuth() for CLI-side auth - Add 'grlx auth login' CLI command for explicit identity verification - Wire auth.login through RBAC middleware (ActionUserRead) - Register auth.login as read-only action in audit system - Add comprehensive tests for handler, client, middleware, and audit
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
Add
auth.loginNATS endpoint — a formal CLI-to-farmer authentication handshake. The CLI presents its signed token (containing the user's public key) and the farmer validates it against configured users, returning the user's identity, role, permissions, and admin status.Changes
New NATS endpoint:
grlx.api.auth.loginLoginResponsewith:authenticated(bool),pubkey,role,usernameisAdminflag and fullactionspermission listmessage(e.g. "authenticated as alice (role: admin)")dangerously_allow_rootmodeNew CLI command:
grlx auth login--out jsonfor machine-readable outputClient library
client.Login()— full login handshakeclient.ValidateAuth()— lightweight pre-flight checkWiring
LoginResponsetype inapi/typesTests
TestAllMethodsMatchRoutesandTestAllMethodsHaveRBACMappingauto-verify registrationContext
Round 10 of continuous development — CLI auth flow chunk from the NATS migration plan.