Releases: NodeJSmith/otf-api
Releases · NodeJSmith/otf-api
otf-api: v0.19.0
otf-api: v0.18.0
0.18.0 (2026-05-10)
⚠ BREAKING CHANGES
- TotalBodyWeight renamed to TotalBodyWater, total_body_weight field renamed to total_body_water, total_body_weight_details renamed to total_body_water_details, OutsideSchedulingWindowError now inherits from BookingError instead of OtfError
Documentation
otf-api: v0.17.0
otf-api: v0.16.0
0.16.0 (2026-04-28)
⚠ BREAKING CHANGES
- removed deprecated flat methods on Otf class (e.g., otf.book_class()). Use the domain-scoped API instead (e.g., otf.bookings.book_class()).
Features
- add field validators and relative descriptor properties to BodyCompositionData (0c1b489)
- add PII anonymization pipeline with real-time capture mode (#109) (c2c381e)
- api.py, auth.py: add refresh callback functionality to handle token refresh events (e4dacc2)
- api.py: add exclude_checkedin parameter to get_bookings method to filter out checked-in bookings (d7fcf32)
- api.py: add filtering by day of week and start time for class retrieval (96d20e0)
- api.py: add home_studio_uuid parameter to Otf class for better user context management (f03b6a5)
- api.py: add hydrate method to Otf class to create instances from a dictionary (8577ad1)
- api.py: add logging and print statement when starting background token refresh task (12b6f9f)
- api.py: add main function to initialize Otf instance using env vars (c1d9315)
- api.py: add methods to get booking by class and booking UUID for better booking management (6094072)
- api.py: add new exceptions for booking errors to improve error handling (6094072)
- api.py: add optional device_key parameter to hydrate method to allow more flexible instantiation (c5e2560)
- api.py: add print statement to debug background task for refreshing token (a8f04ac)
- api.py: add retry logic to _get_performance_summary_raw to handle intermittent None responses (82e9fb0)
- api.py: add support for refresh_token and device_key in Otf class initialization (04c4294)
- api.py: add support for token-based authentication and background token refresh (554e968)
- api.py: add support for user object and refresh callback in Otf class (a081fe2)
- api.py: add user parameter to Otf class constructor to allow passing a user object (7508b09)
- api.py: enhance class booking and cancellation with additional checks and error handling (6094072)
- api.py: extend Api.create method to support token-based authentication (85185eb)
- api: add class and coach rating functionality (1032df1)
- api: implement async context manager methods in Otf class to automatically handle session lifecycle (ed4f287)
- api: implement get_studios_by_geo as alias for search_studios_by_geo (ed4f287)
- auth.py, user.py: add has_cached_credentials method to check for cached credentials (ed4f287)
- auth.py: add check_token method to verify and optionally renew access tokens (30faeb6)
- auth.py: add class methods for creating OtfCognito instances from tokens and login credentials (80a64ac)
- auth.py: add device key support to OtfCognito class for enhanced security (a938c06)
- auth.py: add koji_person_id field to IdClaimsData model to include custom identifier (0c1b489)
- auth.py: add logging for token refresh to improve debugging and monitoring (1192201)
- auth.py: add logging to track token refresh process (63c2199)
- auth.py: add logging when clearing device key to improve traceability (101f195)
- auth.py: add method to create User instance from an id token (554e968)
- auth.py: add methods to check and retrieve username from cache file (4647b55)
- auth.py: add model_config to OtfUser to allow arbitrary types in pydantic model (11d3869)
- auth.py: add OtfCognito class to handle device metadata and token renewal (9e9de81)
- auth.py: add property and setter for device_key with logging for security (1538fec)
- auth.py: add validation for refresh_callback to ensure it is a callable function with one argument (15a4dd4)
- auth: add get_tokens method to OtfUser class to retrieve tokens (c520e39)
- base.py: add item getter methods to OtfBaseModel for flexible key access (0282e67)
- bookings.py: add book and cancel commands to manage class bookings (b0f9f70)
- bookings.py: add BookingStatusCli enum for CLI-friendly booking statuses (0282e67)
- bookings.py: add interactive booking cancellation feature to improve user experience (5095e6b)
- bookings.py: add interactive booking options for studio UUIDs, date range, class type, day of week, and start time (96d20e0)
- bookings.py: integrate OtfClassTimeMixin into OtfClass for time-related properties (0282e67)
- bookings.py: update BookingList to include new class time columns (0282e67)
- bookings: add methods to BookingStatus and StudioStatus enums for case-insensitive lookups and listing all statuses (4647b55)
- bookings: add to_table method to BookingList for rich table representation (4647b55)
- cancel_booking: add new response model for cancel booking (195e4da)
- classes_api: add class_type and exclude_cancelled filters to get_classes method (ffc1cee)
- classes_api: add filtering by date range and limit to get_classes method (76a358a)
- classes_api: integrate booking status to mark classes as booked (ffc1cee)
- classes.py: add ClassType and ClassTypeCli enums for class type management (0282e67)
- classes.py: add DoW enum for day of week filtering and case-insensitive matching ([96d20e0](https://github.com/NodeJSmith/otf-api/co...
v0.15.4
What's Changed
- Fix/improve sorting by @NodeJSmith in #105
- Improve sorting by adding multiple sort keys
- remove filter that removed
no-booking-idbookings, as these were only filtered out due to lack ofupdated_atfield
Full Changelog: v0.15.3...v0.15.4
v0.15.3
What's Changed
- update logic to allow returning workouts even if HR monitor data missing by @NodeJSmith in #103
Full Changelog: v0.15.2...v0.15.3
v0.15.2
What's Changed
- closes #100
- add more logging, especially where filtering/removal of records happens
- add logic to dump raw response if
OTF_LOG_RAW_RESPONSEenv var is set to true- only logging at DEBUG level so need to have that set too, which can be done with OTF_LOG_LEVEL env var
- add
coloredlogspackage to make logs easier to read - remove headers from request log
- change log format structure slightly, use % formatting
- change some log lines to use % to avoid calling methods/converting to string when not logging at that level
- relax data type on
PerformanceMetricclass, remove custom parsing, was not useful
Full Changelog: v0.15.1...v0.15.2
v0.15.1
v0.15.0
What's Changed
- Feature/add get class from booking by @NodeJSmith in #98
Full Changelog: v0.14.1...v0.15.0
v0.14.1
What's Changed
- Fix/improve idp id clients by making them cached properties, remove get/set state dunders by @NodeJSmith in #97
Full Changelog: v0.14.0...v0.14.1