fix!: remove silent boardId=1 fallback in tickets.list()#49
Merged
Conversation
Board IDs are tenant-specific: board 1 is not guaranteed to be the "All Tickets" board. On multi-board tenants the fallback silently queried the wrong board — 1 ticket returned instead of ~1,400 in the reported case, with no error or warning. list() now requires boardId (enforced in the type and at runtime for JS callers) and the error explains how to discover board IDs, including the web-UI fallback for tenants where GET /api/v2/ticketing/trigger/board returns 404. BREAKING CHANGE: TicketsResource.list() requires params.boardId; calls without it throw instead of silently defaulting to board 1. Refs: wyre-technology/ninjaone-mcp#54
github-actions Bot
pushed a commit
that referenced
this pull request
Jul 4, 2026
# [2.0.0](v1.1.3...v2.0.0) (2026-07-04) * fix!: remove silent boardId=1 fallback in tickets.list() ([#49](#49)) ([288ed82](288ed82)), closes [wyre-technology/ninjaone-mcp#54](wyre-technology/ninjaone-mcp#54) ### BREAKING CHANGES * TicketsResource.list() requires params.boardId; calls without it throw instead of silently defaulting to board 1.
asachs01
added a commit
to wyre-technology/ninjaone-mcp
that referenced
this pull request
Jul 4, 2026
Picks up the SDK major that removed the silent boardId=1 fallback in TicketsResource.list() (wyre-technology/node-ninjaone#49, the root-cause fix behind #54). No code changes needed: ninjaone_tickets_list already requires board_id and always passes it. Also re-pins the release reusable to wyre-technology/.github#32: the npm registry rejects custom App installation tokens for cross-repo package reads, which failed the v2.0.0 Docker image build. The fixed reusable authenticates npm with GITHUB_TOKEN + packages: read, so this release ships the image, MCP Registry publish, and deploy that v2.0.0 skipped.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Root-cause fix for wyre-technology/ninjaone-mcp#54:
TicketsResource.list()silently defaultedboardIdto1, but board IDs are tenant-specific — board 1 is not guaranteed to be the "All Tickets" board. On a multi-board tenant this returned 1 ticket instead of ~1,400, with no error or warning.Changes
TicketListParams.boardIdis now required (compile-time enforcement), andlist()throws a descriptive error at runtime for JS callers that omit it — no more silent board-1 fallback.listBoards(), plus the web-UI fallback for tenants whereGET /api/v2/ticketing/trigger/boardreturns 404 (documented onlistBoards()as well).Breaking change
list()calls withoutboardIdnow throw instead of querying board 1. Consumers must pass an explicit board ID (the companion MCP-server change already does: wyre-technology/ninjaone-mcp will requireboard_idon itsninjaone_tickets_listtool).Testing
list({})rejects with an error mentioningboardId(verified failing before the fix).list()test updated to passboardId: 2.Refs wyre-technology/ninjaone-mcp#54