feat!: update SDK routes, docs, and typings to latest API surface#324
Merged
feat!: update SDK routes, docs, and typings to latest API surface#324
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates the Clockodo SDK to align with the latest API versions and adds comprehensive CRUD support for nonbusiness groups/days, overtime carry, and holidays quota/carryover. The changes migrate most endpoints from v2/v3 to v3/v4 API versions, restructure query parameters to use filter objects instead of top-level filter* parameters, and rename getAggregatesUsersMe() to getMe().
Changes:
- Migrated 20+ endpoints to newer API versions (v2→v3, v3→v4) for absences, customers, projects, services, teams, users, lump sum services, and related resources
- Added 15 new CRUD methods for nonbusiness groups/days, overtime carry, and holidays quota/carryover management
- Introduced filter object pattern for query parameters with deprecation warnings for legacy top-level filter* params
- Updated TypeScript types across all models to reflect new optional fields and API response structures
Reviewed changes
Copilot reviewed 18 out of 18 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| src/models/user.ts | Added optional fields: nonbusinessGroupsId, startDate, futureCoworker, workTimeRegulationsId, budgetNotifications, creator; added UserWageType.All enum value |
| src/models/team.ts | Added optional leader field |
| src/models/service.ts | Made note field optional; added billServiceId field |
| src/models/project.ts | Added 15 new optional fields including completedAt, budget object, deadline, startDate, automatic completion settings |
| src/models/overtimecarry.ts | Added optional id field for individual row operations |
| src/models/nonbusinessGroup.ts | Added companyDefault field |
| src/models/nonbusinessDay.ts | Restructured with optional date/nonbusinessgroupsId (legacy), added type, evaluatedDate, day/month/year fields |
| src/models/holidaysCarryover.ts | Added optional id field |
| src/models/customer.ts | Added billServiceId and testData fields |
| src/models/absence.ts | Added publicNote field |
| src/lib/requiredParams.ts | Added constants for 20 new methods (add/edit/delete/get operations) |
| src/lib/mappings.ts | Added deprecation warning for legacy filter* query params; deprecated queryParamMapping |
| src/lib/mappings.test.ts | Removed test for deprecated queryParamMapping |
| src/lib/deprecations.ts | New utility module for tracking and emitting deprecation warnings |
| src/clockodo.ts | Updated 40+ endpoint URLs to new API versions; added 20 new methods; refactored 20+ type definitions with filter objects and explicit param types |
| src/integration.test.ts | Updated tests to use new filter objects and parameter names |
| src/clockodo.test.ts | Added 70+ test cases for new CRUD methods; updated existing tests for API version changes |
| README.md | Updated all method documentation links to new docs.clockodo.com; added examples for 15 new methods |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
commit: |
getProjectsReports() completeProject() setProjectBilled()
github-actions bot
pushed a commit
that referenced
this pull request
Feb 18, 2026
# [28.0.0](v27.1.0...v28.0.0) (2026-02-18) * feat!: update SDK routes, docs, and typings to latest API surface ([#324](#324)) ([b059f89](b059f89)) ### BREAKING CHANGES * `getAggregatesUsersMe()` was renamed to `getMe()`. * `getEntriesTexts()` and `getEntriesTextsPage()` now use `term` instead of `text`. * legacy top-level `filter*` query params were removed; use the supported current params/filter object. * TypeScript method/input/output types were updated and tightened, which may require downstream code changes. * Rename `UsersParam` to `UsersParams`
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.
BREAKING CHANGE:
getAggregatesUsersMe()was renamed togetMe().BREAKING CHANGE:
getEntriesTexts()andgetEntriesTextsPage()now useterminstead oftext.BREAKING CHANGE: legacy top-level
filter*query params were removed; use the supported current params/filter object.BREAKING CHANGE: TypeScript method/input/output types were updated and tightened, which may require downstream code changes.
BREAKING CHANGE: Rename
UsersParamtoUsersParams