SDK Language
Python SDK (composio)
SDK Version
composio==0.13.1
Runtime Environment
Python 3.11
Environment
Production Deployment
Describe the Bug
GOOGLEDRIVE_CREATE_FOLDER cannot return webViewLink (or any other maskable Drive File field), because the action does not expose the Google Drive fields parameter that files.create uses to control the returned field set.
Google Drive's files.create returns only a minimal default projection (id, name, mimeType, kind) unless the caller passes a fields mask (e.g. fields=id,name,webViewLink). The sibling action GOOGLEDRIVE_CREATE_FILE does expose a fields input parameter and forwards it to Google, so it can return webViewLink. GOOGLEDRIVE_CREATE_FOLDER (and GOOGLEDRIVE_CREATE_FILE_FROM_TEXT) omit fields entirely, so there is no way to request webViewLink — the real response never contains it.
This is inconsistent within the same toolkit version: two create actions on the same resource type disagree on whether the Google-native fields parameter is forwarded.
Steps to Reproduce
- Fetch the tool schema for
GOOGLEDRIVE_CREATE_FILE — note it has a fields input parameter.
- Fetch the tool schema for
GOOGLEDRIVE_CREATE_FOLDER — note its only inputs are name and parent_id; there is no fields parameter.
- Execute
GOOGLEDRIVE_CREATE_FOLDER and inspect the response data — it contains id, name, mimeType, kind but never webViewLink, with no way to request it.
Minimal Reproducible Example
from composio import Composio
composio = Composio()
# CREATE_FILE exposes `fields` and can return webViewLink:
file_schema = composio.tools.get(slug="GOOGLEDRIVE_CREATE_FILE")
# -> input params include: name, fields, parents, starred, mimeType, description, file_to_upload
# CREATE_FOLDER does NOT expose `fields`:
folder_schema = composio.tools.get(slug="GOOGLEDRIVE_CREATE_FOLDER")
# -> input params are only: name, parent_id
result = composio.tools.execute(
slug="GOOGLEDRIVE_CREATE_FOLDER",
user_id="<user>",
arguments={"name": "Example Folder", "parent_id": "root"},
)
assert "webViewLink" not in result["data"] # passes — it is never returned
Error Output / Stack Trace
# No exception is raised. The response is silently missing webViewLink:
{
"data": {
"id": "1AbC...",
"name": "Example Folder",
"mimeType": "application/vnd.google-apps.folder",
"kind": "drive#file"
},
"successful": true,
"error": null
}
Reproducibility
Additional Context or Screenshots
Suggested fix (either would resolve it):
- Add a
fields input parameter to GOOGLEDRIVE_CREATE_FOLDER (and GOOGLEDRIVE_CREATE_FILE_FROM_TEXT) and forward it to Google's files.create, matching GOOGLEDRIVE_CREATE_FILE; or
- Default the create-family actions to request a full/expanded
fields mask server-side so webViewLink and other standard File fields are returned by default.
The action's declared output schema advertises webViewLink, webContentLink, thumbnailLink, etc., but these can never be populated under the current input schema — so the declared output over-promises relative to what the action can actually return.
SDK Language
Python SDK (
composio)SDK Version
composio==0.13.1
Runtime Environment
Python 3.11
Environment
Production Deployment
Describe the Bug
GOOGLEDRIVE_CREATE_FOLDERcannot returnwebViewLink(or any other maskable DriveFilefield), because the action does not expose the Google Drivefieldsparameter thatfiles.createuses to control the returned field set.Google Drive's
files.createreturns only a minimal default projection (id,name,mimeType,kind) unless the caller passes afieldsmask (e.g.fields=id,name,webViewLink). The sibling actionGOOGLEDRIVE_CREATE_FILEdoes expose afieldsinput parameter and forwards it to Google, so it can returnwebViewLink.GOOGLEDRIVE_CREATE_FOLDER(andGOOGLEDRIVE_CREATE_FILE_FROM_TEXT) omitfieldsentirely, so there is no way to requestwebViewLink— the real response never contains it.This is inconsistent within the same toolkit version: two create actions on the same resource type disagree on whether the Google-native
fieldsparameter is forwarded.Steps to Reproduce
GOOGLEDRIVE_CREATE_FILE— note it has afieldsinput parameter.GOOGLEDRIVE_CREATE_FOLDER— note its only inputs arenameandparent_id; there is nofieldsparameter.GOOGLEDRIVE_CREATE_FOLDERand inspect the responsedata— it containsid,name,mimeType,kindbut neverwebViewLink, with no way to request it.Minimal Reproducible Example
Error Output / Stack Trace
Reproducibility
Additional Context or Screenshots
Suggested fix (either would resolve it):
fieldsinput parameter toGOOGLEDRIVE_CREATE_FOLDER(andGOOGLEDRIVE_CREATE_FILE_FROM_TEXT) and forward it to Google'sfiles.create, matchingGOOGLEDRIVE_CREATE_FILE; orfieldsmask server-side sowebViewLinkand other standardFilefields are returned by default.The action's declared output schema advertises
webViewLink,webContentLink,thumbnailLink, etc., but these can never be populated under the current input schema — so the declared output over-promises relative to what the action can actually return.