Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FINERACT-2149: disable liquibase phone home #4177

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ private static SpringApplicationBuilder configureApplication(SpringApplicationBu
}

public static void main(String[] args) throws IOException {
System.setProperty("liquibase.analytics.enabled", "false");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wouldn't it be placed more strategically at the TenantDatabaseUpgradeService itself, in a static initializer? Can you test it if it works the same way there?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@meonkeys I think it can be placed as a Fineract Property set to false by default and then this property, (instead of having the System Property), can be placed in the TenantDatabaseUpgradeService as suggested by @kjozsa in the TenantDatabaseUpgradeService as static initializer

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kjozsa: yes, it does.

@kjozsa and @IOhacker: how about we go with just this simple static initializer in TenantDatabaseUpgradeService:

static {
    System.setProperty("liquibase.analytics.enabled", "false");
}

I can't imagine anyone wanting to set the flag to true, and it would be many fewer lines of code just to hardcode it to "false" in this manner rather than provide a configurable setting. If there's demand to make it configurable later, we could of course do that. I feel like our use of Liquibase is up to us, though. An under the hood / upstream decision we get to make. Thoughts?

Also, is it clear that we must use System.setProperty? Our only other alternative is to use an environment setting LIQUIBASE_ANALYTICS_ENABLED=false, visible to the Java VM before/as it initializes. I don't see any way in the Liquibase API to disable phoning home at runtime.

configureApplication(new SpringApplicationBuilder(ServerApplication.class)).run(args);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ private void logTenantStoreDetails() {
log.info("- fineract.tenant.description: {}", tenant.getDescription());
log.info("- fineract.tenant.identifier: {}", tenant.getIdentifier());
log.info("- fineract.tenant.name: {}", tenant.getName());
log.info("- liquibase.analytics.enabled: {}", System.getProperty("liquibase.analytics.enabled"));

String readOnlyUsername = tenant.getReadOnlyUsername();
if (isNotBlank(readOnlyUsername)) {
Expand Down