Skip to content

Comments

feat(tools): advanced fields for youtube, vercel; added cloudflare and dataverse tools#3257

Merged
waleedlatif1 merged 8 commits intostagingfrom
feat/dataverse
Feb 19, 2026
Merged

feat(tools): advanced fields for youtube, vercel; added cloudflare and dataverse tools#3257
waleedlatif1 merged 8 commits intostagingfrom
feat/dataverse

Conversation

@waleedlatif1
Copy link
Collaborator

Summary

  • advanced fields for youtube, vercel
  • added cloudflare and dataverse tools

Type of Change

  • New feature

Testing

Tested manually

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

waleedlatif1 and others added 4 commits February 18, 2026 19:10
Move optional/power-user fields behind the advanced toggle:
- List Deployments: project filter, target, state
- Create Deployment: project ID override, redeploy from, target
- List Projects: search
- Create/Update Project: framework, build/output/install commands
- Env Vars: variable type
- Webhooks: project IDs filter
- Checks: path, details URL
- Team Members: role filter
- All operations: team ID scope

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Hide pagination, sort order, and filter fields behind the advanced
toggle for a cleaner default UX across all YouTube operations.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@vercel
Copy link

vercel bot commented Feb 19, 2026

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

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
docs Skipped Skipped Feb 19, 2026 7:30am

Request Review

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Feb 19, 2026

Greptile Summary

This PR adds two major new tool integrations (Cloudflare and Microsoft Dataverse) and improves the UX of existing tools (Vercel and YouTube) by marking optional parameters as advanced fields.

Cloudflare Integration:

  • Comprehensive DNS management (list, create, update, delete records)
  • Zone management (list, get, create, delete zones)
  • SSL/TLS certificate listing
  • Zone settings management
  • DNS analytics with wand AI prompts for complex queries
  • Cache purging operations
  • Uses API key authentication with proper visibility: 'user-only' configuration
  • 13 tools with extensive configuration options and advanced mode fields

Microsoft Dataverse Integration:

  • Full CRUD operations for Dataverse records
  • OAuth authentication with proper scopes (https://dynamics.microsoft.com/user_impersonation)
  • FetchXML queries for complex data retrieval
  • Relevance search functionality
  • Bulk operations (create/update multiple records)
  • File upload/download with dedicated API route
  • Record associations and disassociations
  • Execute custom actions and functions
  • WhoAmI identity verification
  • 17 tools with comprehensive Dataverse Web API coverage

UX Improvements:

  • Vercel: Moved 8 optional fields to advanced mode (deployment filters, project config, webhook details, check parameters)
  • YouTube: Moved 15 optional search filters to advanced mode (date ranges, duration, quality, captions, region, language)

Implementation Quality:

  • Proper error handling with nested error extraction
  • Comprehensive type definitions
  • Thorough documentation for both integrations
  • Icons added for both new tools
  • All tools properly registered in registries
  • OAuth configuration correctly set up for Dataverse
  • File upload route includes authentication checks and proper file processing

Confidence Score: 5/5

  • This PR is safe to merge with no critical issues found.
  • The implementation is comprehensive and follows established patterns. All new tools use proper authentication (API key for Cloudflare with visibility: 'user-only', OAuth for Dataverse with visibility: 'hidden'), error handling is thorough, types are well-defined, tools are properly registered, and documentation is complete. The UX improvements to Vercel and YouTube are straightforward and improve usability. Code quality is consistent with the codebase standards.
  • No files require special attention

Important Files Changed

Filename Overview
apps/sim/blocks/blocks/cloudflare.ts New Cloudflare block with comprehensive DNS, zone, certificate, and cache management operations. Includes advanced fields and wand AI prompts for complex parameters.
apps/sim/blocks/blocks/microsoft_dataverse.ts New Microsoft Dataverse block with OAuth authentication. Supports CRUD operations, FetchXML queries, search, bulk operations, file handling, and record associations.
apps/sim/blocks/blocks/vercel.ts Added mode: 'advanced' to several optional fields to hide them from basic mode for better UX.
apps/sim/blocks/blocks/youtube.ts Added mode: 'advanced' to optional search filters and parameters for cleaner basic mode UI.
apps/sim/tools/cloudflare/create_dns_record.ts Implements DNS record creation with proper parameter validation, tag parsing, and error handling.
apps/sim/tools/microsoft_dataverse/create_record.ts Implements Dataverse record creation with OAuth, proper headers, JSON parsing, and record ID extraction from response or headers.
apps/sim/app/api/tools/microsoft-dataverse/upload-file/route.ts API route for Dataverse file uploads with authentication checks, file processing from storage or base64, and proper error handling.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[User Configures Block] --> B{Block Type?}
    B -->|Cloudflare| C[Cloudflare Block]
    B -->|Dataverse| D[Microsoft Dataverse Block]
    B -->|Vercel/YouTube| E[Enhanced Blocks]
    
    C --> C1[API Key Auth]
    C1 --> C2{Operation}
    C2 -->|DNS| C3[DNS Tools]
    C2 -->|Zones| C4[Zone Tools]
    C2 -->|Certificates| C5[Certificate Tools]
    C2 -->|Analytics| C6[Analytics Tools]
    C2 -->|Cache| C7[Cache Tools]
    C3 --> C8[Cloudflare API]
    C4 --> C8
    C5 --> C8
    C6 --> C8
    C7 --> C8
    
    D --> D1[OAuth Auth]
    D1 --> D2{Operation}
    D2 -->|CRUD| D3[Record Tools]
    D2 -->|Query| D4[Query Tools]
    D2 -->|Files| D5[File Upload Route]
    D2 -->|Bulk| D6[Bulk Tools]
    D3 --> D7[Dataverse API]
    D4 --> D7
    D5 --> D8[File Processing]
    D8 --> D7
    D6 --> D7
    
    E --> E1[Advanced Mode Fields]
    E1 --> E2[Better UX]
    
    C8 --> F[Tool Registry]
    D7 --> F
    E2 --> G[Blocks Registry]
    F --> H[Workflow Execution]
    G --> H
Loading

Last reviewed commit: 5d5e6f8

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.

42 files reviewed, no comments

Edit Code Review Agent Settings | Greptile

@waleedlatif1
Copy link
Collaborator Author

@cursor review

@waleedlatif1
Copy link
Collaborator Author

@greptile

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.

52 files reviewed, no comments

Edit Code Review Agent Settings | Greptile

@waleedlatif1
Copy link
Collaborator Author

@cursor review

@waleedlatif1
Copy link
Collaborator Author

@cursor review

@waleedlatif1
Copy link
Collaborator Author

@cursor review

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.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

@waleedlatif1 waleedlatif1 merged commit dcf8137 into staging Feb 19, 2026
12 checks passed
@waleedlatif1 waleedlatif1 deleted the feat/dataverse branch February 19, 2026 07:40
waleedlatif1 added a commit that referenced this pull request Feb 20, 2026
…stash, algolia tools; isolated-vm robustness improvements, tables backend (#3271)

* feat(tools): advanced fields for youtube, vercel; added cloudflare and dataverse tools (#3257)

* refactor(vercel): mark optional fields as advanced mode

Move optional/power-user fields behind the advanced toggle:
- List Deployments: project filter, target, state
- Create Deployment: project ID override, redeploy from, target
- List Projects: search
- Create/Update Project: framework, build/output/install commands
- Env Vars: variable type
- Webhooks: project IDs filter
- Checks: path, details URL
- Team Members: role filter
- All operations: team ID scope

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* style(youtube): mark optional params as advanced mode

Hide pagination, sort order, and filter fields behind the advanced
toggle for a cleaner default UX across all YouTube operations.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* added advanced fields for vercel and youtube, added cloudflare and dataverse block

* addded desc for dataverse

* add more tools

* ack comment

* more

* ops

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* feat(tables): added tables (#2867)

* updates

* required

* trashy table viewer

* updates

* updates

* filtering ui

* updates

* updates

* updates

* one input mode

* format

* fix lints

* improved errors

* updates

* updates

* chages

* doc strings

* breaking down file

* update comments with ai

* updates

* comments

* changes

* revert

* updates

* dedupe

* updates

* updates

* updates

* refactoring

* renames & refactors

* refactoring

* updates

* undo

* update db

* wand

* updates

* fix comments

* fixes

* simplify comments

* u[dates

* renames

* better comments

* validation

* updates

* updates

* updates

* fix sorting

* fix appearnce

* updating prompt to make it user sort

* rm

* updates

* rename

* comments

* clean comments

* simplicifcaiton

* updates

* updates

* refactor

* reduced type confusion

* undo

* rename

* undo changes

* undo

* simplify

* updates

* updates

* revert

* updates

* db updates

* type fix

* fix

* fix error handling

* updates

* docs

* docs

* updates

* rename

* dedupe

* revert

* uncook

* updates

* fix

* fix

* fix

* fix

* prepare merge

* readd migrations

* add back missed code

* migrate enrichment logic to general abstraction

* address bugbot concerns

* adhere to size limits for tables

* remove conflicting migration

* add back migrations

* fix tables auth

* fix permissive auth

* fix lint

* reran migrations

* migrate to use tanstack query for all server state

* update table-selector

* update names

* added tables to permission groups, updated subblock types

---------

Co-authored-by: Vikhyath Mondreti <vikhyath@simstudio.ai>
Co-authored-by: waleed <walif6@gmail.com>

* fix(snapshot): changed insert to upsert when concurrent identical child workflows are running (#3259)

* fix(snapshot): changed insert to upsert when concurrent identical child workflows are running

* fixed ci tests failing

* fix(workflows): disallow duplicate workflow names at the same folder level (#3260)

* feat(tools): added redis, upstash, algolia, and revenuecat (#3261)

* feat(tools): added redis, upstash, algolia, and revenuecat

* ack comment

* feat(models): add gemini-3.1-pro-preview and update gemini-3-pro thinking levels (#3263)

* fix(audit-log): lazily resolve actor name/email when missing (#3262)

* fix(blocks): move type coercions from tools.config.tool to tools.config.params (#3264)

* fix(blocks): move type coercions from tools.config.tool to tools.config.params

Number() coercions in tools.config.tool ran at serialization time before
variable resolution, destroying dynamic references like <block.result.count>
by converting them to NaN/null. Moved all coercions to tools.config.params
which runs at execution time after variables are resolved.

Fixed in 15 blocks: exa, arxiv, sentry, incidentio, wikipedia, ahrefs,
posthog, elasticsearch, dropbox, hunter, lemlist, spotify, youtube, grafana,
parallel. Also added mode: 'advanced' to optional exa fields.

Closes #3258

* fix(blocks): address PR review — move remaining param mutations from tool() to params()

- Moved field mappings from tool() to params() in grafana, posthog,
  lemlist, spotify, dropbox (same dynamic reference bug)
- Fixed parallel.ts excerpts/full_content boolean logic
- Fixed parallel.ts search_queries empty case (must set undefined)
- Fixed elasticsearch.ts timeout not included when already ends with 's'
- Restored dropbox.ts tool() switch for proper default fallback

* fix(blocks): restore field renames to tool() for serialization-time validation

Field renames (e.g. personalApiKey→apiKey) must be in tool() because
validateRequiredFieldsBeforeExecution calls selectToolId()→tool() then
checks renamed field names on params. Only type coercions (Number(),
boolean) stay in params() to avoid destroying dynamic variable references.

* improvement(resolver): resovled empty sentinel to not pass through unexecuted valid refs to text inputs (#3266)

* fix(blocks): add required constraint for serviceDeskId in JSM block (#3268)

* fix(blocks): add required constraint for serviceDeskId in JSM block

* fix(blocks): rename custom field values to request field values in JSM create request

* fix(trigger): add isolated-vm support to trigger.dev container builds (#3269)

Scheduled workflow executions running in trigger.dev containers were
failing to spawn isolated-vm workers because the native module wasn't
available in the container. This caused loop condition evaluation to
silently fail and exit after one iteration.

- Add isolated-vm to build.external and additionalPackages in trigger config
- Include isolated-vm-worker.cjs via additionalFiles for child process spawning
- Add fallback path resolution for worker file in trigger.dev environment

* fix(tables): hide tables from sidebar and block registry (#3270)

* fix(tables): hide tables from sidebar and block registry

* fix(trigger): add isolated-vm support to trigger.dev container builds (#3269)

Scheduled workflow executions running in trigger.dev containers were
failing to spawn isolated-vm workers because the native module wasn't
available in the container. This caused loop condition evaluation to
silently fail and exit after one iteration.

- Add isolated-vm to build.external and additionalPackages in trigger config
- Include isolated-vm-worker.cjs via additionalFiles for child process spawning
- Add fallback path resolution for worker file in trigger.dev environment

* lint

* fix(trigger): update node version to align with main app (#3272)

* fix(build): fix corrupted sticky disk cache on blacksmith (#3273)

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Lakee Sivaraya <71339072+lakeesiv@users.noreply.github.com>
Co-authored-by: Vikhyath Mondreti <vikhyath@simstudio.ai>
Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com>
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.

1 participant