Some checks failed
		
		
	
	Build Test Deploy / docs (push) Has been cancelled
				
			Build Test Deploy / deploy (push) Has been cancelled
				
			Build Test Deploy / build-test (push) Has been cancelled
				
			Build Test Deploy / authority-container (push) Has been cancelled
				
			Docs CI / lint-and-preview (push) Has been cancelled
				
			
		
			
				
	
	
		
			28 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
%% Rate limit and lockout interplay for Standard plug-in (Mermaid)
 | 
						|
sequenceDiagram
 | 
						|
    autonumber
 | 
						|
    participant Client as Client/App
 | 
						|
    participant Host as Authority Host
 | 
						|
    participant Limiter as Rate Limiter Middleware
 | 
						|
    participant Plugin as Standard Plugin
 | 
						|
    participant Store as Credential Store / Lockout State
 | 
						|
 | 
						|
    Client->>Host: POST /token (client_id, credentials)
 | 
						|
    Host->>Limiter: Check quota (client_id + remote_ip)
 | 
						|
    alt quota exceeded
 | 
						|
        Limiter-->>Host: Reject (429, retryAfter)
 | 
						|
        Host-->>Client: 429 Too Many Requests\nRetry-After header with limiter tags
 | 
						|
    else quota ok
 | 
						|
        Limiter-->>Host: Allow (remaining tokens)
 | 
						|
        Host->>Plugin: VerifyCredentials(subject)
 | 
						|
        Plugin->>Store: Load hashed password + lockout counters
 | 
						|
        Store-->>Plugin: Credential result + deterministic counter
 | 
						|
        alt lockout threshold reached
 | 
						|
            Plugin-->>Host: Locked (retryAfter=lockoutWindow)
 | 
						|
            Host-->>Client: 423 Locked\nRetry-After header + `authority.lockout` tag
 | 
						|
        else valid credentials
 | 
						|
            Plugin-->>Host: Success (issue tokens)
 | 
						|
            Host-->>Client: 200 OK + tokens + limiter metadata
 | 
						|
        end
 | 
						|
    end
 |