In legacy add-ons, OSF manages providers directly using BaseFileNode classes defined in addons/*/models.py.
However, in the newer GravyValet-based add-ons, providers are managed by the GravyValet service, and there are no BaseFileNode classes defined on the OSF side.