{"id":48160608,"url":"https://github.com/jlpdeveloper/liquibase-security","last_synced_at":"2026-04-04T17:24:41.832Z","repository":{"id":230479040,"uuid":"779495026","full_name":"jlpdeveloper/liquibase-security","owner":"jlpdeveloper","description":"Powershell module to keep secrets in keepass","archived":false,"fork":false,"pushed_at":"2024-04-02T00:45:20.000Z","size":365,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-04-02T01:26:59.076Z","etag":null,"topics":["keepass2","liquibase","security"],"latest_commit_sha":null,"homepage":"","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jlpdeveloper.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-03-30T01:12:11.000Z","updated_at":"2024-03-30T01:28:20.000Z","dependencies_parsed_at":"2024-03-30T02:25:54.712Z","dependency_job_id":"9dd9870f-2041-418c-8766-7b86f8a19f53","html_url":"https://github.com/jlpdeveloper/liquibase-security","commit_stats":null,"previous_names":["jlpdeveloper/liquibase-security"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/jlpdeveloper/liquibase-security","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlpdeveloper%2Fliquibase-security","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlpdeveloper%2Fliquibase-security/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlpdeveloper%2Fliquibase-security/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlpdeveloper%2Fliquibase-security/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jlpdeveloper","download_url":"https://codeload.github.com/jlpdeveloper/liquibase-security/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlpdeveloper%2Fliquibase-security/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31407644,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["keepass2","liquibase","security"],"created_at":"2026-04-04T17:24:41.677Z","updated_at":"2026-04-04T17:24:41.821Z","avatar_url":"https://github.com/jlpdeveloper.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Liquibase Security PowerShell Module\n\n## Description\nThis project was developed to eliminate the security issue of having usernames and passwords in a liquibase properties file. This problem is fixed by setting up a [KeePass 2](https://keepass.info/download.html) database to store the information, then using the commands to tell the module where your KeePass database is and to load username, password, and url from that database into liquibase command environment variables. \n## Setup\n- Download KeePass 2\n- Setup a new database named Liquibase\n   - File -\u003e New\n   - Select the location for the database file. This will open the \"Create Composite Key\" Dialog\n   - Uncheck the master password option\n   - Check the \"Show Expert Options\" option\n   - Set the Authentication Method to \"Windows Account\"\n   ![compositekeydialog](./images/CreateCompositeMasterKey.png)\n   - Add an `Environments` Group\n   - Add an entry with a title corresponding to each environment. Your url should be the jdbc url that you would use in the liquibase properties file\n\nAt this point you should have a database that looks like the following:\n![keepass](./images/KeepassExample.png)\n\n*Note* if you use the same base connection information for different databases, replace your database name with `{{liquibase-database}}` in the KeePass entry. Add a line to the bottom of your liquibase.properties file like this:\n```bash\nliquibase.database=your-database-name\n```\n\n*Note* you may now specify a subpath in the liquibase properties file a KeePass sub path. For example if your secret is in `Liquibase/Environments/MySql`, you can specify the following to make it use that path\n```bash\nliquibase.secret.subpath=MySql\n```\n\n- Import the module to your powershell instance (I personally use an import in my profile)\n- Your first time setup you'll need to run the following command:\n```bash\nSetupKeePass C:\\path\\to\\keepass.kdbx\n```\n## Usage\nTo switch environments use the `LBSwitchEnvironments` command\n```bash\nLBSwitchEnvironments local\n```\nTo view what environment you are in, use the `LBGetEnvironment` command\n\nTo clear the environment, use the `LBClearEnvironment` command\n\n## Important Notes\n- This requires the Database Name to be `Liquibase` and the Entry Group to be named `Environments`. If the KeePass database isn't set up exactly this way, this will not work!\n- This will require you to be extra careful in checking which environment you are in\n- Your liquibase.properties file should only requires\n   - your changelog file\n   - your database name\n\n\n## Release Notes\n\n### *V1.1.0*\n\n- Added `liquibase.secret.subpath` as an option to add to liquibase properties to expand where to put the secrets in KeePass (`Liquibase/Environments` is still required as root)\n- Reworked the code for the database name templating since that code is similar to secret subpath code","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjlpdeveloper%2Fliquibase-security","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjlpdeveloper%2Fliquibase-security","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjlpdeveloper%2Fliquibase-security/lists"}