Repository: Stirling-Tools/Stirling-PDF
File: app/common/src/main/java/stirling/software/common/model/ApplicationProperties.java (Java)

Code before:
            @Data
            public static class Aatl {
                private String url = "https://trustlist.adobe.com/tl.pdf";
            }

            @Data
            public static class Eutl {
                private String lotlUrl = "https://ec.europa.eu/tools/lotl/eu-lotl.xml";
                private boolean acceptTransitional = false;
            }

            @Data
            public static class Revocation {
                private String mode = "none";
                private boolean hardFail = false;
            }
        }
    }

    @Data
    public static class System {
        private String defaultLocale;
        private Boolean googlevisibility;
        private boolean showUpdate;
        private Boolean showUpdateOnlyAdmin;
        private Boolean hideSettingsForNonAdmins;
        private boolean customHTMLFiles;
        private String tessdataDir;
        private Boolean enableAlphaFunctionality;
        private Boolean enableAnalytics;
        private Boolean enablePosthog;
        private Boolean enableScarf;
        private Boolean enableDesktopInstallSlide;
        private Datasource datasource;
        private Boolean disableSanitize;
        private int maxDPI;
        private Boolean enableUrlToPDF;
        private Html html = new Html();
        private CustomPaths customPaths = new CustomPaths();
        private String fileUploadLimit;
        private TempFileManagement tempFileManagement = new TempFileManagement();
        private DatabaseBackup databaseBackup = new DatabaseBackup();
        private List<String> corsAllowedOrigins = new ArrayList<>();
        private String backendUrl; // Backend base URL for SAML/OAuth/API callbacks (e.g.
        // 'http://localhost:8080', 'https://api.example.com'). Required for
        // SSO.
        private String frontendUrl; // Frontend URL for invite email links (e.g.

        // 'https://app.example.com'). If not set, falls back to backendUrl.

        public boolean isAnalyticsEnabled() {

Review comment (suggestion):
I'm not 100% convinced by the name for this flag. If login is disabled then there aren't admins, right? My understanding is that this is just for all users in a server without login. I'd also rather it be a `show` prefix not a `hide` one to match the other settings. Keeping them all positive/negative will make things less confusing 

Code after:

            @Data
            public static class Aatl {
                private String url = "https://trustlist.adobe.com/tl.pdf";
            }

            @Data
            public static class Eutl {
                private String lotlUrl = "https://ec.europa.eu/tools/lotl/eu-lotl.xml";
                private boolean acceptTransitional = false;
            }

            @Data
            public static class Revocation {
                private String mode = "none";
                private boolean hardFail = false;
            }
        }
    }

    @Data
    public static class System {
        private String defaultLocale;
        private boolean googlevisibility;
        private boolean showUpdate;
        private boolean showUpdateOnlyAdmin;
        private boolean showSettingsWhenNoLogin = true;
        private boolean customHTMLFiles;
        private String tessdataDir;
        private boolean enableAlphaFunctionality;
        private Boolean enableAnalytics;
        private Boolean enablePosthog;
        private Boolean enableScarf;
        private Boolean enableDesktopInstallSlide;
        private Datasource datasource;
        private boolean disableSanitize;
        private int maxDPI;
        private boolean enableUrlToPDF;
        private Html html = new Html();
        private CustomPaths customPaths = new CustomPaths();
        private String fileUploadLimit;
        private TempFileManagement tempFileManagement = new TempFileManagement();
        private DatabaseBackup databaseBackup = new DatabaseBackup();
        private List<String> corsAllowedOrigins = new ArrayList<>();
        private String backendUrl; // Backend base URL for SAML/OAuth/API callbacks (e.g.
        // 'http://localhost:8080', 'https://api.example.com'). Required for
        // SSO.
        private String frontendUrl; // Frontend URL for invite email links (e.g.

        // 'https://app.example.com'). If not set, falls back to backendUrl.