Skip to content

Conversation

@icecrasher321
Copy link
Collaborator

Summary

fix(storage): support Azure connection string for presigned URLs; align credential source ordering; update KB embedding dimensions tests; update deploy docs requirements (#2997)

fix(supabase): storage upload + add basic mode version; subblock update fixes; cleanup redundant checks (#2996)

fix(multi-trigger): resolution paths for triggers; fix trigger input format version; fix output condition logic; update type guard (#3002)

waleedlatif1 and others added 3 commits January 25, 2026 13:06
* fix(docs): update requirements to be more accurate for deploying the app

* updated kb to support 1536 dimension vectors for models other than text embedding 3 small

* fix(storage): support Azure connection string for presigned URLs

* fix(kb): update test for embedding dimensions parameter

* fix(storage): align credential source ordering for consistency
* fix(supabase): storage upload + add basic mode version

* fix subblock update

* remove redundant check in a2a

* add check consistently for baseline diff
* fix(multi-trigger): resolution paths for triggers

* fix trigger input format version

* fix output condition logic

* update type guard:

* fix
@vercel
Copy link

vercel bot commented Jan 26, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
docs Ready Ready Preview, Comment Jan 26, 2026 7:33am

Request Review

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Jan 26, 2026

Greptile Overview

Greptile Summary

This release consolidates three important fixes across storage handling, Supabase integration, and multi-trigger resolution:

Azure Storage Enhancement

  • Added connection string parsing support for presigned URL generation, aligning with existing upload functionality
  • Extracted credential parsing into reusable parseConnectionString() and getAccountCredentials() functions
  • Fixed inconsistent credential handling across getPresignedUrl(), getPresignedUrlWithConfig(), and getMultipartPartUrls()

Supabase Storage Upload Improvement

  • Introduced dual-mode file upload: basic mode (file picker) and advanced mode (base64/plain text)
  • Created new internal API route at /api/tools/supabase/storage-upload with intelligent base64 auto-detection
  • Refactored tool to proxy through internal API instead of direct Supabase calls, enabling file object handling

Multi-Trigger Resolution Fix

  • Fixed trigger input format handling by merging structured input fields with workflow input
  • Refactored schema resolution to use tool outputs as source of truth via shared getBlockSchema() function
  • Corrected output condition evaluation logic in getToolOutputPaths() to check conditions directly

Additional Improvements

  • Added baseline diff view guards to prevent mutations during read-only mode in collaborative workflow
  • Fixed operation queue processing to trigger on registration
  • Corrected canonicalToggle memo comparison to handle undefined values
  • Added Gmail draft outputs (draftId, messageId)
  • Updated deployment documentation with tiered resource requirements

Confidence Score: 5/5

  • This PR is safe to merge with minimal risk
  • All changes are well-structured bug fixes and improvements with clear intent. The Azure credential parsing uses standard regex matching, the Supabase upload adds proper validation and error handling, and the multi-trigger resolution fixes address specific edge cases. Code follows existing patterns and includes appropriate guards.
  • No files require special attention

Important Files Changed

Filename Overview
apps/sim/lib/uploads/providers/blob/client.ts Added connection string parsing support for Azure presigned URLs; extracted credential parsing logic to reusable functions
apps/sim/app/api/tools/supabase/storage-upload/route.ts New API route handling both file objects and base64 strings with auto-detection logic; comprehensive error handling included
apps/sim/executor/utils/block-data.ts Refactored schema resolution to use tools as source of truth; extracted getBlockSchema function for reuse
apps/sim/executor/utils/start-block.ts Fixed integration trigger output to merge structured input fields properly with workflow input
apps/sim/lib/workflows/blocks/block-outputs.ts Fixed output filtering to evaluate conditions directly instead of using intermediate filtered outputs
apps/sim/hooks/use-collaborative-workflow.ts Added baseline diff view guards to prevent mutations during read-only mode; fixed canonical mode operation queueing

Sequence Diagram

sequenceDiagram
    participant User
    participant SupabaseBlock
    participant StorageUploadAPI
    participant FileUtils
    participant SupabaseStorage
    participant AzureClient
    participant AzureSAS

    Note over User,SupabaseStorage: Supabase Storage Upload Flow

    User->>SupabaseBlock: Upload file (basic/advanced mode)
    SupabaseBlock->>StorageUploadAPI: POST /api/tools/supabase/storage-upload
    
    alt File object (basic mode)
        StorageUploadAPI->>FileUtils: processSingleFileToUserFile()
        FileUtils-->>StorageUploadAPI: UserFile
        StorageUploadAPI->>FileUtils: downloadFileFromStorage()
        FileUtils-->>StorageUploadAPI: Buffer
    else String input (advanced mode)
        alt Data URL format
            StorageUploadAPI->>StorageUploadAPI: Extract MIME + base64
        end
        alt Base64 detected
            StorageUploadAPI->>StorageUploadAPI: Decode base64 + verify
        else Plain text
            StorageUploadAPI->>StorageUploadAPI: Convert to Buffer
        end
    end

    StorageUploadAPI->>SupabaseStorage: POST with buffer + headers
    SupabaseStorage-->>StorageUploadAPI: Upload result
    StorageUploadAPI-->>User: Success with publicUrl

    Note over User,AzureSAS: Azure Presigned URL Flow

    User->>AzureClient: Request presigned URL
    
    alt Connection string provided
        AzureClient->>AzureClient: parseConnectionString()
        AzureClient->>AzureClient: Extract accountName + accountKey
    else Account credentials provided
        AzureClient->>AzureClient: Use accountName + accountKey
    end

    AzureClient->>AzureSAS: generateBlobSASQueryParameters()
    AzureSAS-->>AzureClient: SAS token
    AzureClient-->>User: Presigned URL with SAS

    Note over User,SupabaseBlock: Multi-Trigger Resolution Flow

    User->>SupabaseBlock: Execute workflow with trigger
    SupabaseBlock->>SupabaseBlock: buildIntegrationTriggerOutput()
    SupabaseBlock->>SupabaseBlock: Merge structuredInput fields
    SupabaseBlock->>SupabaseBlock: Merge workflowInput (preserve non-null)
    SupabaseBlock->>SupabaseBlock: getBlockSchema() - tool outputs first
    SupabaseBlock-->>User: Resolved trigger output
Loading

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 file reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

* improvement(docs): added images and videos to quick references

* moved mp4s to blob, completed quick reference guide
@waleedlatif1 waleedlatif1 changed the title v0.5.72: azure connection string, supabase improvement, multitrigger resolution v0.5.72: azure connection string, supabase improvement, multitrigger resolution, docs quick reference Jan 26, 2026
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

@icecrasher321 icecrasher321 merged commit 1c58c35 into main Jan 26, 2026
25 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants