paritytech / substrate-archive

Blockchain Indexing Engine
GNU General Public License v3.0
195 stars 74 forks source link

Make AMQP Url configurable via Environment variables #431

Open insipx opened 2 years ago

insipx commented 2 years ago

the rabbitMQ url should have the possibility of being configured via the environment similar to how DATABASE_URL and CHAIN_DATA_DB are. The environment variable could be AMQP_URL

joaoepj commented 2 years ago

Hi @insipx, I have introduced the AMQP_URL variable into my fork.

  1. I've created a function env_var_task_url() that uses AMQP_URL value, or fallback to default_task_url(). Is this enough, or should I create some ControlConfig implementation?
  2. Currently there's no AMQP_URL validation, which level of validation is expected here?
insipx commented 2 years ago

1.) this sounds good; there is already a control config implementation for the task url: https://github.com/paritytech/substrate-archive/blob/eeb593ed13867642c9b80a39556a75a36c4e47bc/substrate-archive/src/actors.rs#L100

but the environment variable should take precedence over that option

2.) if the URL cannot connect the amqp library (lapin) would throw an error; otherwise i'm unsure of what kind of validation would be appropriate here. I would like to say that just accepting any URL would be fine