{"id":28193,"library":"snakemake-storage-plugin-gcs","title":"Snakemake Storage Plugin GCS","description":"A Snakemake storage plugin providing read/write access to Google Cloud Storage (GCS). Version 1.1.4, compatible with Snakemake ≥7.x plugin interface. Release cadence is irregular, tied to Snakemake plugin API updates.","status":"active","version":"1.1.4","language":"python","source_language":"en","source_url":"https://github.com/snakemake/snakemake-storage-plugin-gcs","tags":["snakemake","gcs","google-cloud-storage","storage-plugin","workflow"],"install":[{"cmd":"pip install snakemake-storage-plugin-gcs","lang":"bash","label":"PyPI"}],"dependencies":[{"reason":"Core workflow manager that this plugin extends","package":"snakemake","optional":false}],"imports":[{"note":"Direct import is rarely needed; plugin auto-registers when installed.","wrong":null,"symbol":"StorageProviderGCS","correct":"from snakemake_storage_plugin_gcs import StorageProviderGCS"}],"quickstart":{"code":"import os\n# Set authentication (uses Application Default Credentials)\nos.environ['GOOGLE_APPLICATION_CREDENTIALS'] = '/path/to/service-account-key.json'\n# Or use implicit default credentials\n# In your Snakefile, reference files with gs:// prefix\n# Example rule:\nrule download:\n    input:\n        \"gs://my-bucket/data.txt\"\n    output:\n        \"data.txt\"\n    shell:\n        \"cp {input} {output}\"","lang":"python","description":"Basic usage: install plugin, set up GCS authentication, and use gs:// URIs in Snakemake rules. The plugin auto-detects gs:// prefixes."},"warnings":[{"fix":"Use a service account key and set GOOGLE_APPLICATION_CREDENTIALS environment variable, or use workload identity federation for long-running workflows.","message":"GCS authentication uses Application Default Credentials (ADC) by default. OAuth2 tokens from ADC may expire during long runs, causing failures.","severity":"gotcha","affected_versions":"all"},{"fix":"Upgrade Snakemake to 7.x or later, or use an older storage plugin if locked to Snakemake 6.x (not available).","message":"Plugin version 1.x requires Snakemake >=7.0.0 plugin API. Not compatible with older Snakemake versions that used the legacy storage API (pre-7.0).","severity":"breaking","affected_versions":"1.0.0 and above"},{"fix":"Use gsutil or google-cloud-storage API directly for versioned access.","message":"The plugin does not support GCS object versioning or generation numbers. If you need to retrieve a specific version, you must handle it separately.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-09T00:00:00.000Z","next_check":"2026-08-07T00:00:00.000Z","problems":[{"fix":"Run `pip install snakemake-storage-plugin-gcs` in the same Python environment as Snakemake.","cause":"Plugin not installed or installed in wrong environment.","error":"ModuleNotFoundError: No module named 'snakemake_storage_plugin_gcs'"},{"fix":"Ensure your service account key has 'Storage Object Viewer' (read) or 'Storage Object Creator' (write) permissions, and set GOOGLE_APPLICATION_CREDENTIALS to the correct key JSON file.","cause":"Missing or invalid GCS credentials for the bucket/resource.","error":"google.api_core.exceptions.Forbidden: 403 GET https://storage.googleapis.com/..."},{"fix":"Update Snakemake to >=7.0.0 or install a compatible plugin version.","cause":"Incompatibility between plugin version and Snakemake version.","error":"snakemake.exceptions.WorkflowError: TypeError: StorageProviderGCS.__init__() got an unexpected keyword argument 'fallback'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}