Add application setting to permit MinIO for offline transfers

What does this MR do and why?

Add application setting to permit MinIO for offline transfers

Introduces a new application setting allow_minio_for_offline_transfer to control whether MinIO can be used as an object storage location for offline transfers. This replaces the previous Rails.env.development? check with a proper configurable setting.

Changes:

  • Add allow_minio_for_offline_transfer boolean to the importers jsonb column in ApplicationSetting model (defaults to false)
  • Add JSON schema validation for the new setting
  • Update Import::Offline::Configuration to use the new setting instead of Rails.env.development?
  • Update specs to use stub_application_setting

I have not yet made this setting configurable via the API or documented it. I will address that in a follow-up MR.

References

How to set up and validate locally

ApplicationSetting.current.update!(allow_minio_for_offline_transfer: false)
Import::Offline::Configuration.new.send(:supported_providers)
=> ["aws"]

ApplicationSetting.current.update!(allow_minio_for_offline_transfer: true)
Import::Offline::Configuration.new.send(:supported_providers)
# => ["aws", "minio"]

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by James Nutt

Merge request reports

Loading