Client Configuration

Class Diagram

diagram

Settings

Note

Javadoc has sadly not recognised the class-level Lombok getter for all fields, but they do exist.

Preferred client kind

There are two options to choose from:

  • HTTP_CLIENT:
    A resource-efficient client that does not require a browser but instead makes direct HTTP requests. Especially useful for low-power devices like a Raspberry Pi.
  • HEADLESS_BROWSER:
    A browser like Firefox but without a graphical user interface. Very resource-intensive and should only be used if the hardware is capable of running a headless browser. NOT recommended for use on devices like a Raspberry Pi.
TypeString
Must be one of
  • HTTP_CLIENT
  • HEADLESS_BROWSER
JSON keyclient-kind
DefaultHTTP_CLIENT

User agent

By default, Friedolyn tells the university its true identity. If the user would like to be more inconspicuous, they may select a fake user agent. Then, Friedolyn would seem like a regular web browser.

All values other than the pre-defined ones will be used verbatim.

TypeString
JSON keyuser-agent
DefaultFriedolyn.DEFAULT

Pre-defined values

The pre-defined user-agents consist of a client (i.e. the software making the request) and a platform (i.e. the operating system the client is running on). Here’s an overview of the platforms that each client supports:

  • Friedolyn
    • Friedolyn.DEFAULT (no platform specified)
    • Friedolyn.Linux
    • Friedolyn.Zorin
    • Friedolyn.Ubuntu
    • Friedolyn.Windows
    • Friedolyn.MacOS
  • Mozilla Firefox
    • Mozilla Firefox.Linux
    • Mozilla Firefox.Ubuntu
    • Mozilla Firefox.Fedora
    • Mozilla Firefox.Android
    • Mozilla Firefox.Windows
    • Mozilla Firefox.MacOS
    • Mozilla Firefox.iPhone
    • Mozilla Firefox.iPad
  • Gnome Web
    • Gnome Web.Ubuntu
  • Apple Safari
    • Apple Safari.MacOS
    • Apple Safari.iPhone
    • Apple Safari.iPad
  • Google Chrome
    • Google Chrome.Linux
    • Google Chrome.Android
    • Google Chrome.Windows
    • Google Chrome.MacOS
    • Google Chrome.iPhone
    • Google Chrome.iPad
  • Vivaldi
    • Vivaldi.Linux
    • Vivaldi.Windows
    • Vivaldi.MacOS
  • Microsoft Edge
    • Microsoft Edge.Android
    • Microsoft Edge.Windows
    • Microsoft Edge.MacOS
    • Microsoft Edge.iPhone
    • Microsoft Edge.Xbox

Do not track

The Do Not Track header indicates whether the user would prefer privacy rather than personalised content.

Typeboolean
JSON keydo-not-track
Defaultfalse

Global Privacy Control

The Global Privacy Control header indicates whether the user consents to a website or service selling or sharing their personal information with third parties.

Typeboolean
JSON keyglobal-privacy-control
Defaultfalse