I’m currently using the Google Drive node, but this issue exists for all Google nodes.
When using a Google service account and uploading a file, the file is owned by the service account and is not visible to anyone. It is not possible to transfer ownership to a user either because of outside domain restrictions.
In Drive, a workaround is to share a users folder with the service account email. Then the file will show up. However, it would be much better if the service account would impersonate a properly configured user to perform certain actions (upload, move, share, delete, etc…). Then the file is truly owned by the desired user, and no additional configuration on folders is required. Additionally, this approach is much better than having a user actually authenticate an OAuth session in n8n.
Essentially, what I think this would look like in the node for Drive (or Calendar, etc…) would be an addtional option in n8n to enter the impersonated user’s email address for the call. Assuming everything is configured properly in Google Cloud Platform, it should work.
@Trevor_Gildersleeve Just added this. If you can test it locally and let me know if it works fine would be cool. Currently, it’s implemented just for Google Drive. if it works for you I will add it to the other Google services.
btw check the image below, I believe that has to be active.
Made some changes and it will work with Sheets, Drive and Books which are currently the only services that use Service Account credentials. Would that be enough to cover your use case? @Trevor_Gildersleeve
It would always be possible if Google Calendar supports it but someone would need to make it so it might be worth making a feature request and giving it a vote.