Skip to content

Conversation

@waleedlatif1
Copy link
Collaborator

Summary

  • added list space labels, get pages by label, delete label, delete page prop

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)

@vercel
Copy link

vercel bot commented Feb 11, 2026

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

Project Deployment Actions Updated (UTC)
docs Ready Ready Preview, Comment Feb 11, 2026 10:30pm

Request 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.

Cursor Bugbot has reviewed your changes and found 2 potential issues.

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

}

const encodedLabel = encodeURIComponent(labelName.trim())
const url = `https://api.atlassian.com/ex/confluence/${cloudId}/wiki/rest/api/content/${pageId}/label/${encodedLabel}`
Copy link

Choose a reason for hiding this comment

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

Delete label cannot target prefixed labels

Medium Severity

confluence_delete_label only accepts labelName and builds the delete path from that value, but add_label supports non-global prefixes. Without a prefix input, prefixed labels cannot be unambiguously targeted, so deletes for labels like my/team can fail or hit the wrong label variant.

Additional Locations (1)

Fix in Cursor Fix in Web


const queryParams = new URLSearchParams()
queryParams.append('limit', String(Math.min(Number(limit), 250)))
if (cursor) {
Copy link

Choose a reason for hiding this comment

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

Invalid limit can produce broken upstream requests

Low Severity

limit is converted with Number(limit) and immediately used in Math.min(...) without numeric validation. Non-numeric input becomes NaN, so the query sends limit=NaN to Atlassian, causing avoidable API failures for otherwise valid requests.

Additional Locations (1)

Fix in Cursor Fix in Web

@waleedlatif1 waleedlatif1 merged commit 5fc40f7 into staging Feb 11, 2026
11 of 12 checks passed
@waleedlatif1 waleedlatif1 deleted the improvement/confl branch February 11, 2026 22:33
@greptile-apps
Copy link
Contributor

greptile-apps bot commented Feb 11, 2026

Greptile Overview

Greptile Summary

This PR expands the Confluence integration by adding new API routes and tool configs to (1) delete a page content property, (2) delete a label from a page, (3) list labels in a space, and (4) list pages by label (with cursor pagination). The Confluence V2 block UI is updated to expose these operations and pass the correct parameters, and the docs are updated accordingly.

Confidence Score: 5/5

  • This PR is safe to merge with minimal risk.
  • Changes are additive and follow existing Confluence tool patterns (internal API routes + ToolConfig wrappers + block wiring). No definite functional or security regressions introduced by the diff were found after verifying tool execution/error-handling behavior.
  • No files require special attention

Important Files Changed

Filename Overview
apps/docs/content/docs/en/tools/confluence.mdx Documented new Confluence tools for deleting page properties, deleting labels, listing space labels, and getting pages by label.
apps/sim/app/api/tools/confluence/labels/route.ts Added DELETE handler to remove a label from a Confluence page using v1 REST endpoint with input validation.
apps/sim/app/api/tools/confluence/pages-by-label/route.ts Added GET endpoint to list pages for a label via Confluence v2 labels API with cursor pagination.
apps/sim/app/api/tools/confluence/space-labels/route.ts Added GET endpoint to list labels for a space via Confluence v2 spaces API with cursor pagination.
apps/sim/blocks/blocks/confluence.ts Extended Confluence V2 block operations and inputs to support deleting page properties, deleting labels, listing space labels, and getting pages by label.
apps/sim/tools/confluence/delete_label.ts New tool config wiring to call internal labels DELETE API and return structured deleted-label output.
apps/sim/tools/confluence/delete_page_property.ts New tool config wiring to call internal page-properties DELETE API and return structured deleted-property output.
apps/sim/tools/confluence/get_pages_by_label.ts New tool config wiring to call internal pages-by-label API with pagination support and structured page outputs.
apps/sim/tools/confluence/index.ts Exported newly added Confluence tools from the module index.
apps/sim/tools/confluence/list_space_labels.ts New tool config wiring to call internal space-labels API with pagination support and structured label outputs.
apps/sim/tools/registry.ts Registered newly added Confluence tools in the global tool registry.

Sequence Diagram

sequenceDiagram
  autonumber
  participant Block as ConfluenceV2Block
  participant Tool as ToolConfig (confluence_*)
  participant Exec as tools/executeTool
  participant API as Next.js API Route
  participant Atl as Atlassian Confluence API

  Block->>Tool: Select operation + params
  Tool->>Exec: executeTool(toolId, params)
  Exec->>API: fetch /api/tools/confluence/... (internal)
  API->>Atl: fetch https://api.atlassian.com/ex/confluence/{cloudId}/...
  Atl-->>API: JSON response
  API-->>Exec: JSON response
  Exec-->>Tool: transformResponse()
  Tool-->>Block: structured output + nextCursor
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.

11 files reviewed, no comments

Edit Code Review Agent Settings | Greptile

waleedlatif1 added a commit that referenced this pull request Feb 12, 2026
)

* fix(terminal): reconnect to running executions after page refresh

* fix(terminal): use ExecutionEvent type instead of any in reconnection stream

* fix(execution): type event buffer with ExecutionEvent instead of Record<string, unknown>

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

* fix(execution): validate fromEventId query param in reconnection endpoint

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

* Fix some bugs

* fix(variables): fix tag dropdown and cursor alignment in variables block (#3199)

* feat(confluence): added list space labels, delete label, delete page prop (#3201)

* updated route

* ack comments

* fix(execution): reset execution state in reconnection cleanup to unblock re-entry

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

* fix(execution): restore running entries when reconnection is interrupted by navigation

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

* done

* remove cast in ioredis types

* ack PR comments

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Siddharth Ganesan <siddharthganesan@gmail.com>
waleedlatif1 added a commit that referenced this pull request Feb 12, 2026
)

* fix(terminal): reconnect to running executions after page refresh

* fix(terminal): use ExecutionEvent type instead of any in reconnection stream

* fix(execution): type event buffer with ExecutionEvent instead of Record<string, unknown>

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

* fix(execution): validate fromEventId query param in reconnection endpoint

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

* Fix some bugs

* fix(variables): fix tag dropdown and cursor alignment in variables block (#3199)

* feat(confluence): added list space labels, delete label, delete page prop (#3201)

* updated route

* ack comments

* fix(execution): reset execution state in reconnection cleanup to unblock re-entry

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

* fix(execution): restore running entries when reconnection is interrupted by navigation

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

* done

* remove cast in ioredis types

* ack PR comments

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Siddharth Ganesan <siddharthganesan@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