Hello everyone!
We are happy to announce a new release of KoboToolbox! It has been deployed to our Global server at 15:40 UTC on Tuesday, 15 April 2025.
This release consists of:
- KPI version 2.025.02a
- Pyxform version 3.0.0
- Enketo version 7.3.1 for production servers - Unchanged from 2.024.36. Enketo will be upgraded to 7.5.1 for self hosters.
Depreciation Notice: We will be decommissioning the KPI V1 endpoints early 2026. Please start using the V2 endpoints as soon as possible to prevent any workflow disruptions. The OpenRosa/KoboCat V1 endpoints will remain.
New Features
PRs | Description |
---|---|
kpi#5404 kpi#5241 kpi#5340 kpi#5355 kpi#5339 kpi#5401 kpi#5387 kpi#5364 kpi#5361 kpi#5354 kpi#5347 kpi#5343 kpi#5319 kpi#5313 kpi#5302 kpi#5297 kpi#5270 kpi#5225 kpi#5230 kpi#5223 kpi#5203 kpi#5199 kpi#5193 kpi#5188 kpi#5210 kpi#5211 kpi#5396 kpi#5320 kpi#5368 kpi#5217 kpi#5245 kpi#5383 kpi#5423 kpi#5416 |
NEW FEATURE: Project History Logs We’re excited to introduce Project History Logs, a new feature that allows project owners and managers to track and manage project activities directly within the KoboToolbox interface. This feature provides a comprehensive view of project events, ensuring greater transparency, security, and accountability. With this functionality, you will be able to: - View a detailed log of all project activities, including changes to the project, form, data, and permissions. - Access easily in the KoboToolbox interface going to Project > Settings > Activity - Quickly locate specific event types with the filter (e.g., form edits, permission changes). - Use ‘See Details’ for an expanded view of any activity, including associated metadata to assist with security investigations. - Export the entire activity log, receiving an email notification when the download is ready. Data can also be accessed via API. This feature is a significant addition for users and organizations looking to have greater visibility into project activities, monitor security, or keep a historical record for audit and compliance purposes. |
kpi#5258 kpi#5258 kpi#5304 kpi#5191 kpi#5212 kpi#5216 |
NEW FEATURE: Access Logs Export Access logs can now be downloaded from the Account Settings → Security tab to allow the use of external tools to analyze the usage of your account through the use of more detailed logs |
kpi#5238 |
NEW FEATURE: Background Geopoint question Supports the Background Geopoint question type which can be triggered to store the GPS location of the device at any point within a survey. For more information on the specifications, look here |
kpi#5317 kpi#5391 kpi#5240 kpi#5394 kpi#5342 kpi#5254 kpi#5393 kpi#5392 kpi#5362 kpi#5382 kpi#5358 kpi#5353 kpi#5357 kpi#5315 kpi#5335 kpi#5341 kpi#5329 kpi#5332 kpi#5333 kpi#5249 kpi#5327 kpi#5281 kpi#5299 kpi#5318 kpi#5280 kpi#5312 kpi#5322 kpi#5314 kpi#5253 kpi#5296 kpi#5289 kpi#5261 kpi#5235 kpi#5233 kpi#5287 kpi#5285 kpi#5284 kpi#5266 kpi#5276 kpi#5234 kpi#5218 kpi#5246 kpi#5196 kpi#5232 kpi#5219 kpi#5197 kpi#5215 kpi#5194 kpi#5204 kpi#5189 kpi#5200 kpi#5179 kpi#5182 kpi#5183 kpi#5388 kpi#5310 kpi#5397 kpi#5384 kpi#5378 kpi#5352 kpi#5346 kpi#5252 kpi#5324 kpi#5345 kpi#5331 kpi#5290 kpi#5303 kpi#5294 kpi#5288 kpi#5286 kpi#5262 kpi#5263 kpi#5349 kpi#5348 kpi#5309 kpi#5551 kpi#5534 kpi#5537 kpi#5502 kpi#5451 |
NEW FEATURE: Organizations Teams and Enterprise subscribers will now be able to better access the information for their team and change organization settings. Projects created by team members will be owned by the organization while the project creators will maintain manage permissions and all other sharing permissions. Organization owners and admins will be able to modify the roles of members and remove them from the team. Note that the ability to invite users to the organization without contacting support will be coming with the next release! |
Bug fixes and improvements
PR | Description |
---|---|
kpi#5206 | Fix geo-points not displaying in map |
kpi#5548 | Update android instructions |
kpi#5265 | Add billing and tracking support for one-time addons |
kpi#4925 | Add NLP support for background-audio questions Add support for transcripts, translations, and qualitative analysis of background-audio questions, and improve display of background-audio questions and groups in the data table |
kpi#5367 | Check default plan limits on backend Updates backend code to check Stripe products for default community plan limits when determining organization usage. |
kpi#5326 | Return service/asset usage for current period Update asset and service usage code to return only a single set of data for the current billing cycle, regardless of whether that cycle is monthly or yearly and adjust frontend accordingly. |
kpi#5323 | Adjust usage page loading spinner logic Fix error that was causing infinite loading spinner on usage page for non-Stripe instances. |
kpi#5325 | Use django storage to handle file objects |
kpi#5334 | Fixes a 500 being thrown when a non-superuser goes to /admin and then tries to log in as a superuser |
kpi#5390 | Increase FileField maximum length to 380 charactersIncreased the maximum length of FileField models from the default to 380 characters. |
kpi#5338 | Improve multiple pinned columns handling. Allow pinning columns to right side Improve pinned column styling based on table having horizontal scrollbar Add reusable useViewportSize and useWindowEvent hooksAdd extensive story for testing the component, including left/right column pinning, the amount of columns and much more |
kpi#5279 | Fix main header disappearing on small screens |
kpi#5337 | Fix NLP features broken on non-Stripe instances |
kpi#5272 | Fix the detection of the root node tag name of the survey in the XForm XML, respecting the name field in XLSForm settings |
kpi#5236 | Use default cursor for non-clickable message row |
kpi#5220 | Load collection child routes properly |
kpi#5278 | Avoid top gap when scrollbar appears |
kpi#5275 | Add light-green and make label optional |
kpi#5268 | Add more Avatar options |
kpi#5554 | Fix a bug that was causing the plans page to always redirect current user to account settings page |
kpi#5550 | Fix incorrect in-app message for project transfers |
kpi#5533 | Fix an issue where the billing period was incorrectly detected for end-of-month cancellations |
kpi#5507 | Fix a typo that caused attachment transfers to fail during project ownership transfer |
kpi#5435 | Added the unique identifier rootUuid to the data API response for submissions |
kpi#5465 | Fix a bug where submissions were not being fully deleted after a project transfer, ensuring proper cleanup in both PostgreSQL and MongoDB |
kpi#5455 | Fix 500 error when transcribing audio Take into account subscriptions plan that are addon product type when calculating an organization plan usage limits |
kpi#5047 | Reject with duplicate UUIDs and XML hashes |
kpi#5667 | Ensure members have permissions to view project forms and submit data |
kpi#5664 | prevent 500 error when submission root_uuid is null in data API |
kpi#5651 | Eensure atomicity of submissions |
Of Interest to Developers
PR | Description |
---|---|
kpi#5359 | Fix typos and formatting in the audit log endpoint documentation |
kpi#5291 | Rename kebab-case dirs to camelCase |
kpi#5164 | Query-ify OrganizationContext |
kpi#5118 | Switch account sidenav to style module |
kpi#5406 | Add missing fetchPatchUrl , fetchPutUrl , and fetchDeleteUrl to api.ts |
kpi#5202 | Update AssetResponse object to match latest BE response Internal improvements |
kpi#5311 | Improve comparison refs for focused errors |
kpi#5237 | Update organization prop from AccountResponse TS interface |
kpi#5264 | Replace mocha-chrome with jest |
kpi#5405 | Migrate files to TypeScript |
kpi#5251 | De-duplicate code via UniversalProjectsRoute |
kpi#5229 | Cleanup files and organize imports |
kpi#5330 | Reorder PR template in priority order |
kpi#5221 | Update pull request template |
kpi#5198 | Add reminder for adding PR tags to template checklist Add a checklist item to the PR template with a reminder to label PR with frontend/backend tag. |
kpi#5301 | Removes imports that: - Were marked as deprecated in previous versions in Python 3.8 - Are no longer supported in the Python 3.1x |
kpi#5369 | Fix stories sorting (abc) |
kpi#5306 | Move planName |
kpi#5293 | Linter cleanup |
kpi#5295 | Skip tests if unaffected |
kpi#5269 | Remove in-browser mocha test environment |
kpi#5415 | Rename admin user in fixture |
kpi#5260 | Use Array for columns prop |
kpi#5298 | Rename ##placeholder## to :placeholder in urls for consistency sake |
kpi#5126 | Upgrade pyxform to v2.1.1 |
kpi#5239 | Fix broken and slow pip-compile.sh |
kpi#5305 | Add new inline message type |
kpi#5267 | Fix Inline message links |
kpi#5292 | Set lib to allow ES2021 functionalities |
kpi#5389 | Introduced a long-running migration to transfer members’ data to their respective organizations. |
kpi#5231 | Combine legacy kobocat service check into primary service check |
kpi#5271 | Update failing export test with correct default support email |
kpi#5250 | Projects filter button styles |
kpi#5278 | Avoid top gap when scrollbar appears |
kpi#5268 | Add more Avatar options |
kpi#5418 | Fix a 500 error from the various audit log endpoints when there are actions by deleted users |
kpi#5514 | Ensure projects are fully deleted and add a task restarter to restart task abruptly stopped |
kpi#5515 | Add a migration to clean up outdated task names related to project ownership transfers |
kpi#5511 | Improve code readability for project ownership transfers by updating comments for better context and renamed tasks with more explicit names to enhance maintainability |
kpi#5459 | Adjust self-ownership check logic to check owner__username rather than owner_label and drops use of util for determining when to display ‘me’ vs. owner avatar |
kpi#5442 | Upgrade pyxform to version 3.0.0 |
kpi#5434 | Add a long-running migration to backfill the root_uuid field for old submissions. |
kpi#5412 | Add theming and storybook entry for a custom ActionIcon component that automatically includes an appropriate sized icon. |
kpi#5427 | Adjust theme color hsl formatting |
kpi#5344 | Refactor Mantine Component Library PoC |