I'm finding it surprisingly difficult to find any info on standardized ways of updating a "private" plugin that does not exist in the wordpress.org repositories. I've seen -- and bought -- plenty of premium plugins that often have updates available via the WordPress admin, so it's obviously possible.
Is there a "WordPress" way of doing this? I feel like there should be an API to handle this, and would expect at least some tutorials on how to do this, but I'm having trouble finding something useful. I'm very much interested to bake this functionality into a plugin that I'm developing. I'm not interested in third-party plugins that do this for me, because I don't want the dependency.
What are the current options for non-dot-org plugins and themes to be updated via admin?