feat: add auth error handling #461
Open
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.
Authentication & Authorization Error Handling for CLI
Summary
This PR implements comprehensive authentication and authorization error handling for the CLI, aligning with the eol-api's GraphQL error codes and providing user-friendly error messages.
Key Changes
ApiErrorclass extracts auth error codes from GraphQLextensions.coderequireAccessTokenForScan()function with automatic token validationhd auth loginAuthentication Flow
Error Handling Summary
GraphQL Error Codes (from eol-api)
SESSION_EXPIREDhd auth login."INVALID_TOKENhd auth login."UNAUTHENTICATEDhd auth login."FORBIDDENLocal Auth Errors (pre-request validation)
NOT_LOGGED_INhd auth login."SESSION_EXPIREDhd auth login."Backward Compatibility
All changes are guarded behind
ENABLE_AUTHenvironment variable:ENABLE_AUTH=false(default): No auth checks, app behavior unchangedENABLE_AUTH=true: Full auth flow with token refresh and error handlingAnalytics
All auth failures are tracked via Amplitude with:
command: The CLI command executedcommand_flags: Flags passed to the commandscan_failure_reason: The specific error code (SESSION_EXPIRED,INVALID_TOKEN,UNAUTHENTICATED,FORBIDDEN)Related PRs
extensions.codeCloses https://github.com/neverendingsupport/data-and-integrations/issues/408