@startuml
actor User
participant "Browser" as Terminal
participant "Plugin" as Plugin
participant "API" as API
participant "Fingerprint Service" as Fingerprint

Plugin -> API: Fetches settings (fingerprint api key)
activate API
API --> Plugin: Settings
deactivate API

User -> Terminal: Visits site
Terminal -> Plugin: User accesses site with plugin
activate Plugin
Plugin -> User: Renders Loading Page 
deactivate Plugin
Terminal -> Fingerprint: Fetches visitor token
activate Fingerprint
Fingerprint --> Terminal: Visitor token
deactivate Fingerprint
Terminal -> Plugin: Sends visitor token
activate Plugin
Plugin -> API: Fetches visitor data
activate API
API --> Plugin: Visitor data
deactivate API

alt if visitor has tag = "bad actor"
    Plugin -> Terminal: Redirects user to another page
    Terminal -> User: Shows redirected page
else
    Plugin -> Terminal: Allows normal access
    Terminal -> User: Shows normal content
end
deactivate Plugin

@enduml
