This is a tool I created on the side that is able to parse connection strings for various data sources including SQL, NoSQL, files, cloud storage (s3, etc), and more.
I created it because I wanted to add automatic parsing for WhoDB (day job) so that users do not have to type in each detail individually when they add a new data source.
The parser currently supports SQL, NoSQL, file-based, and cloud storage connection strings (Postgres, MySQL, MongoDB, Redis, S3, SQLite, and more).
Each datasource is defined via YAML:
- required fields
- optional fields
- credential handling
- query params
- validation rules
Usage is simple:
const result = parse('postgres://user:pass@localhost:5432/app?sslmode=require');
and the result:
{ "scheme": "postgres", "type": "database", "authority": { "host": "localhost", "port": 5432 }, "resource": { "type": "database", "name": "app" }, "path": "", "query": { "sslmode": "require" }, "fragment": null, "credentials": { "username": "user", "password": "pass" }, "options": {}, "raw": "postgres://user:pass@localhost:5432/app?sslmode=require", "safe": "postgres://user:**@localhost:5432/app?sslmode=require" }
which can they be used directly in the application.