I think we should tell liquibase not to phone home <https://docs.liquibase.com/analytics/home.html>. It does this during database migration (at least).
The phone home anti-feature can be disabled by setting the LIQUIBASE_ANALYTICS_ENABLED environment variable to false, or by setting the system property liquibase.analytics.enabled to false. Would a patch be welcome to disable the liquibase phone home by default for Fineract? If so, could I get a hint on where/how to do this properly? I'm guessing the ideal place would be in fineract-provider/src/main/resources/application.properties, (default to false, allow override) but our version of spring boot doesn't support it yet <https://github.com/spring-projects/spring-boot/issues/43067>. We could do System.setProperty("liquibase.analytics.enabled", "false"); in the top-level main method but that feels a bit heavy-handed. I tried disabling the phone home in a few other places but I couldn't get it to work. For now I am using the suggested env setting LIQUIBASE_ANALYTICS_ENABLED=false in the run config for my Fineract project in IntelliJ. If a "default off" patch would not be welcome, perhaps folks would appreciate a mention in a README (next to where other env var settings are mentioned? I noticed the phone home because I block requests from my computer to 3rd party tracking/analytics services, and I was getting this error in my console: 2024-11-18 11:27:28.799 - INFO 2390993 --- [ main] a.f.i.c.s.m.TenantDatabaseUpgradeService : Upgrading tenant store DB at localhost:5432 2024-11-18 11:27:28.800 - INFO 2390993 --- [ main] a.f.i.c.s.m.TenantDatabaseUpgradeService : - fineract.tenant.username: postgres 2024-11-18 11:27:28.800 - INFO 2390993 --- [ main] a.f.i.c.s.m.TenantDatabaseUpgradeService : - fineract.tenant.password: **** 2024-11-18 11:27:28.800 - INFO 2390993 --- [ main] a.f.i.c.s.m.TenantDatabaseUpgradeService : - fineract.tenant.parameters: 2024-11-18 11:27:28.800 - INFO 2390993 --- [ main] a.f.i.c.s.m.TenantDatabaseUpgradeService : - fineract.tenant.timezone: Asia/Kolkata 2024-11-18 11:27:28.800 - INFO 2390993 --- [ main] a.f.i.c.s.m.TenantDatabaseUpgradeService : - fineract.tenant.description: Default Demo Tenant 2024-11-18 11:27:28.800 - INFO 2390993 --- [ main] a.f.i.c.s.m.TenantDatabaseUpgradeService : - fineract.tenant.identifier: default 2024-11-18 11:27:28.800 - INFO 2390993 --- [ main] a.f.i.c.s.m.TenantDatabaseUpgradeService : - fineract.tenant.name: fineract_default Exception in thread "Thread-2" java.lang.RuntimeException: java.net.ConnectException: Connection refused at liquibase.analytics.LiquibaseAnalyticsListener.lambda$handleEvent$2(LiquibaseAnalyticsListener.java:110) at java.base/java.lang.Thread.run(Thread.java:840) Caused by: java.net.ConnectException: Connection refused at java.base/sun.nio.ch.Net.connect0(Native Method) at java.base/sun.nio.ch.Net.connect(Net.java:579) at java.base/sun.nio.ch.Net.connect(Net.java:568) at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:593) at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) at java.base/java.net.Socket.connect(Socket.java:639) at java.base/sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:304) at java.base/sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:174) at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:183) Caused by: java.net.ConnectException: Connection refused at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:533) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:638) at java.base/sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:266) at java.base/sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:380) at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:193) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1259) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1145) at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:179) at java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1468) at java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1439) at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:220) at liquibase.analytics.LiquibaseAnalyticsListener.lambda$handleEvent$2(LiquibaseAnalyticsListener.java:101) ... 1 more At first I misunderstood this as a database connection error, but it was really just liquibase throwing an error because it couldn't connect to its analytics server. I think the default behavior of trackers like these should always be opt out. See also: - Analytics is enabled by default in OSS version · Issue #6503 · liquibase/liquibase · GitHub <https://github.com/liquibase/liquibase/issues/6503> - Add a method for Spring Boot to configure the new analytics feature · Issue #6501 · liquibase/liquibase · GitHub <https://github.com/liquibase/liquibase/issues/6501>