я такие моменты решаю через файлы с пропертями, можно посмотреть примеры реализаций «проперти» на вашем стеке, и указывать все параметры для работы автогена в файлике.
также можно вынести в параметры вызова, есть парсеры консольного ввода, почитайте о них на вашем стеке…
если в кратец как у меня, есть енум с именами пропертей, типамиДанных и дефолтным значением. есть обертка над проперти, которая принимает на вход значение енума. и по имени ищет в файле значение, если не находит выдает дефолтное и с полученным значением код работает дальше.
а ссылка на файл передается при консольном запуске, а если не передается то берется стандартный из поставки…
очень удобно в плане «шаринга», не надо вписывать что, где и куда… просто даешь коллегам - они по примеру пишут свой конфиг в стиле
grafanaURL=localehost
и запускают