As you pointed out in the component maker manifest, makers don’t have the ability to upload files. You can use the S3 service from @theadaloguy (I think it is his) or build your own component to store files in your own S3 bucket (or other file system). Otherwise base64 is the only option available to us.
Yes, when you choose a file it posts to the adalo database endpoint which saves it to an S3 bucket with a random unique id and shows a preview using base64 encoding. Then when you save the record it will save the unique IDof the file in the database as text for future retrieval.
It can technically, but building things outside of the developer docs is against the rules so accessing and posting file records is off-limits. But it is very possible if you know what you are doing as seen in the video in the post below
I do not think there is any published guidelines, the only reason I know the limits is because I had a conversation with Adalo when I started releasing my components and my marketplace. The rules are that your component can only use what is in the API docs. There is no way to POST a file using the REST api, and even if you tried to use the REST api in your component you would expose your Bearer token client side. There is no documented way to access the file upload system that exists in Adalo. You also cannot wrap providers around the main app.
As far as I know there is no action Adalo has ever taken against any developer that violates this. I am sure if you built this just for your app, and not release it to the public it would be okay.
Seems like the folks at Adalo deleted my post with the video. Sad state of affairs, setting the record straight, turns out it was me… I don’t remember the component. I think I took an input type image then figured out what the table and column id’s were so that I could upload the file and update the database.
You cannot upload files to the database, I believe Adalo deleting the video from the forum is further confirmation that they do not want you uploading files.
You will need to wait until Adalo added files to the API.