Skip to content

Allow environment configuration override via Java System Properties or Environment Variables #114

Closed
@hbobenicio

Description

@hbobenicio

I'm not sure if I got it right but... the only way to configure migrations environments is via a Properties File (for example: ./enviroment/someEnv.properties). Am I correct? (at least I didn't find more on that on the docs page )

If so, it would be also interesting to configure some of the environment properties (or override them) via CLI arguments, Java System Properties or Environment Variables.

for exemple:

Today:
migrate --path=path/to/repo --env=myenv -> requires full configuration on path/to/repo/repositories/myenv.properties

Maybe a more flexible alternative:

(path/to/repo/repositories/myenv.properties without url, username and password properties)

migrate --path=path/to/repo --env=myenv --url=$MYENV_URL --username=$MYENV_USERNAME --password=$MYENV_PASSWORD

or

migrate --path=path/to/repo --env=myenv -Durl=$MYENV_URL -Dusername=$MYENV_USERNAME -Dpassword=$MYENV_PASSWORD

or

env URL=$MYENV_URL USERNAME=$MYENV_USERNAME PASSWORD=$MYENV_PASSWORD migrate --path=path/to/repo --env=myenv

Motivation:
In some deployment environments, a safe approach of storing sensitive data (like db username/password) is via protected environment variables. This way, one would let url, username and password properties out of the environment property file and define it as OS Environment Variable to allow migrations to execute on the CI pipeline.

Sorry for the long description. Any thoughts about it? Is this already possible to be accomplished somehow?

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions