Releases: fderuiter/imednet-python-sdk
Releases · fderuiter/imednet-python-sdk
v0.4.2
What's Changed
- fix(ci): robustify security audit step and patch cryptography vulnerability by @fderuiter in #651
Full Changelog: v0.4.1...v0.4.2
v0.4.1
What's Changed
- feat(security): validate email_notify for header injection by @fderuiter in #580
- Refactor BaseClient to remove forced logging configuration by @google-labs-jules[bot] in #586
- Remove requests dependency and migrate FormDesignerClient to httpx by @google-labs-jules[bot] in #587
- docs: fix missing prerequisites in README and CONTRIBUTING by @google-labs-jules[bot] in #600
- Refactor by @fderuiter in #597
- Refactor: Implement Auth Strategy and Client Protocols by @fderuiter in #620
- 🏗️ Architect: Refactor Endpoints by @fderuiter in #622
- 🛡️ Shield: Add tests for AsyncPaginator and empty results by @fderuiter in #625
- 🛠️ Refactor: SubjectsEndpoint - DRY filtering logic by @fderuiter in #623
- 🧹 Polish: Extract truncation helper in CLI utils by @fderuiter in #624
- Refactor: Use PathGetEndpointMixin for JobsEndpoint by @fderuiter in #630
- ⚡ Bolt: Optimize CLI display_list performance by @fderuiter in #628
- feat(cli): add color coding to status columns by @fderuiter in #626
- 🛡️ Sentinel: [MEDIUM] Fix sensitive data leakage in logs by @fderuiter in #627
- 🛠️ Refactor: Core - DRY RequestExecutor & Method-Aware Retry State by @fderuiter in #634
- 🖋️ Scribe: Document optional dependencies in README by @fderuiter in #632
- 🏗️ Architect: Refactor Endpoint Core and SDK by @fderuiter in #633
- Refactor: SDK Convenience Mixin and JobsEndpoint DRY by @fderuiter in #638
- Refactor ListEndpointMixin into focused mixins by @fderuiter in #641
- 🛡️ Shield: Robust Integer Parsing for Float Strings by @fderuiter in #643
- 🛡️ Shield: Fix paginator crash on null pagination key by @fderuiter in #642
- 🧹 Polish: Refactor CLI status coloring to use constant map by @fderuiter in #636
- 🛡️ Shield: Verify and enforce retry policy behavior by @fderuiter in #631
- Refactor endpoints to use shared mixins and paginators by @fderuiter in #645
- Refactor Endpoint Mixins for Modularity and Type Safety by @fderuiter in #644
- 🏗️ Architect: Decouple Endpoint Registry and Client Factory by @fderuiter in #647
- Bump version from 0.3.0 to 0.4.0 by @fderuiter in #648
- 🛠️ Refactor: JobsEndpoint - Extract ListEndpoint (DRY/OCP) by @fderuiter in #649
- Bump version to 0.4.1 by @fderuiter in #650
Full Changelog: v0.3.0...v0.4.1
v0.4.0
What's Changed
- feat(security): validate email_notify for header injection by @fderuiter in #580
- Refactor BaseClient to remove forced logging configuration by @google-labs-jules[bot] in #586
- Remove requests dependency and migrate FormDesignerClient to httpx by @google-labs-jules[bot] in #587
- docs: fix missing prerequisites in README and CONTRIBUTING by @google-labs-jules[bot] in #600
- Refactor by @fderuiter in #597
- Refactor: Implement Auth Strategy and Client Protocols by @fderuiter in #620
- 🏗️ Architect: Refactor Endpoints by @fderuiter in #622
- 🛡️ Shield: Add tests for AsyncPaginator and empty results by @fderuiter in #625
- 🛠️ Refactor: SubjectsEndpoint - DRY filtering logic by @fderuiter in #623
- 🧹 Polish: Extract truncation helper in CLI utils by @fderuiter in #624
- Refactor: Use PathGetEndpointMixin for JobsEndpoint by @fderuiter in #630
- ⚡ Bolt: Optimize CLI display_list performance by @fderuiter in #628
- feat(cli): add color coding to status columns by @fderuiter in #626
- 🛡️ Sentinel: [MEDIUM] Fix sensitive data leakage in logs by @fderuiter in #627
- 🛠️ Refactor: Core - DRY RequestExecutor & Method-Aware Retry State by @fderuiter in #634
- 🖋️ Scribe: Document optional dependencies in README by @fderuiter in #632
- 🏗️ Architect: Refactor Endpoint Core and SDK by @fderuiter in #633
- Refactor: SDK Convenience Mixin and JobsEndpoint DRY by @fderuiter in #638
- Refactor ListEndpointMixin into focused mixins by @fderuiter in #641
- 🛡️ Shield: Robust Integer Parsing for Float Strings by @fderuiter in #643
- 🛡️ Shield: Fix paginator crash on null pagination key by @fderuiter in #642
- 🧹 Polish: Refactor CLI status coloring to use constant map by @fderuiter in #636
- 🛡️ Shield: Verify and enforce retry policy behavior by @fderuiter in #631
- Refactor endpoints to use shared mixins and paginators by @fderuiter in #645
- Refactor Endpoint Mixins for Modularity and Type Safety by @fderuiter in #644
- 🏗️ Architect: Decouple Endpoint Registry and Client Factory by @fderuiter in #647
Full Changelog: v0.3.0...v0.4.0
v0.2.3
What's Changed
- feat(cli): implement summary views for complex list commands by @fderuiter in #536
- 🛡️ Sentinel: [HIGH] Fix Terminal Markup Injection by @google-labs-jules[bot] in #537
- ⚡ Bolt: Optimized list item parsing loop by @google-labs-jules[bot] in #538
- 🧹 Polish: Extract context resolution in endpoints by @google-labs-jules[bot] in #539
- 🎨 Palette: Improved CLI feedback and table readability by @google-labs-jules[bot] in #542
- 🛡️ Sentinel: [MEDIUM] Fix CSV Injection in Export by @google-labs-jules[bot] in #543
- ⚡ Bolt: Optimize filter string construction by @google-labs-jules[bot] in #541
- 🛡️ Shield: Add async validation tests for records by @google-labs-jules[bot] in #540
- Consolidate AGENTS.md files by @google-labs-jules[bot] in #544
- test(validators): add comprehensive table-driven tests for parse_bool by @fderuiter in #546
- refactor(records): extract record validation logic by @fderuiter in #545
- Security: Upgrade filelock to ^3.20.1 to fix CVE-2025-68146 by @google-labs-jules[bot] in #547
Full Changelog: v0.2.2...v0.2.3
v0.2.2
What's Changed
- refactor: remove implicit Paginator reflection in endpoints by @fderuiter in #516
- fix(endpoints): ensure record validation runs for snake_case keys by @fderuiter in #517
- refactor: remove implicit Paginator reflection in endpoints by @fderuiter in #518
- feat(cli): add loading spinners to list commands by @fderuiter in #519
- feat: optimize ISO date parsing performance by @fderuiter in #520
- fix(security): prevent backslash injection in filter strings by @fderuiter in #521
- 🧹 Polish: Extract cache update logic in ListGetEndpointMixin by @fderuiter in #522
- feat(cli): improve records list UX and remove pandas dependency by @fderuiter in #524
- perf(models): optimize JsonModel validator for 13% speedup by @fderuiter in #525
- 🛡️ Sentinel: [MEDIUM] Fix sensitive data leak in Config.repr by @fderuiter in #526
- feat(cli): Improve subjects list output by @fderuiter in #531
- fix(security): escape user input in CLI output to prevent terminal in… by @fderuiter in #530
- refactor: optimize SchemaCache refresh to avoid N+1 queries by @fderuiter in #529
- perf: optimize boolean parsing for common api responses by @fderuiter in #527
- refactor: de-duplicate schema cache population logic by @fderuiter in #532
- docs: consistency and completeness sweep by @google-labs-jules[bot] in #534
- test(config): add boundary tests for empty/whitespace keys by @fderuiter in #533
- Bump version to 0.2.2 and remove CHANGELOG.md by @google-labs-jules[bot] in #535
Full Changelog: v0.2.1...v0.2.2
v0.2.1
What's Changed
- release: Version 0.2.0 by @fderuiter in #478
- feat: Enhance README with professional redesign by @fderuiter in #479
- feat(cli): enhance list output with formatted tables by @fderuiter in #510
- docs: add .env.example and update config instructions by @fderuiter in #512
- 🛡️ Shield: Add tests for BaseEndpoint sad paths by @fderuiter in #511
- fix(security): encode path segments in BaseEndpoint to prevent traversal by @fderuiter in #513
- feat(cli): improve table output formatting for lists by @fderuiter in #514
- perf: optimize JsonModel field normalization with caching by @fderuiter in #515
Full Changelog: v0.2.0...v0.2.1
v0.1.9
What's Changed
- Refactor by @fderuiter in #345
- Update README.md by @fderuiter in #346
- Refactor by @fderuiter in #348
- Dev by @fderuiter in #383
- Add smoke test workflow by @fderuiter in #385
- Add sanitizer for chatgpt links by @fderuiter in #387
- Potential fix for code scanning alert no. 1: Workflow does not contain permissions by @fderuiter in #389
- Update smoke tests to show skip reasons by @fderuiter in #393
- Dev by @fderuiter in #403
- Docs to Dev by @fderuiter in #472
- Dev to Prod by @fderuiter in #461
Full Changelog: v0.1.3.1...v0.2.0
v0.1.3
v0.1.2
What's Changed
- Dev by @fderuiter in #350
Full Changelog: v0.1.0...v0.1.2
What's Changed
- Dev by @fderuiter in #350
Full Changelog: v0.1.0...v0.1.2
What's Changed
- Dev by @fderuiter in #350
Full Changelog: v0.1.0...v0.1.2
Initial Release 0.1.0
Initial Release
What's Changed
- feat: add data models for coding, forms, intervals, jobs, queries, record revisions, records, sites, subjects, users, variables, and visits by @fderuiter in #1
- feat: add issue templates for bug reports and feature requests; enhan… by @fderuiter in #2
- chore: update documentation and templates for clarity; add spacing fo… by @fderuiter in #3
- Refactor iMedNet SDK: Update documentation, remove example scripts, a… by @fderuiter in #4
- chore: add permissions for GitHub Actions to enable documentation dep… by @fderuiter in #5
- Development by @fderuiter in #10
- Add docs build make target by @fderuiter in #75
- Add SDK entrypoint tests by @fderuiter in #128
- Add extensive endpoint unit tests by @fderuiter in #125
- Add model validation tests by @fderuiter in #126
- Add workflow and mapper tests by @fderuiter in #127
- Add CLI unit tests by @fderuiter in #129
- Add core module tests by @fderuiter in #131
- Add respx fixtures and client tests by @fderuiter in #132
- Add env var authentication by @fderuiter in #133
- Add convenience endpoint wrappers by @fderuiter in #134
- Improve autodoc setup by @fderuiter in #137
- Add pandas utilities by @fderuiter in #135
- Remove hello command from CLI by @fderuiter in #139
- Add JSON logging with request metrics by @fderuiter in #136
- Add caching for study and variable listings by @fderuiter in #146
- Expand CLI command tests by @fderuiter in #145
- Add record validation with schema caching by @fderuiter in #147
- Add records subcommand group to CLI by @fderuiter in #150
- Add async client support by @fderuiter in #151
- Add PEP 621 project section by @fderuiter in #152
- Add SchemaValidator for record validation by @fderuiter in #153
- Update metadata in pyproject by @fderuiter in #154
- Add Airflow operators by @fderuiter in #155
- Add versioning instructions by @fderuiter in #157
- Add async client and SDK by @fderuiter in #158
- Add Airflow DAG examples by @fderuiter in #159
- Implement job polling utilities by @fderuiter in #156
- Update package metadata by @fderuiter in #160
- Update docs version handling by @fderuiter in #161
- Add package classifiers by @fderuiter in #162
- Add Airflow integration docs by @fderuiter in #163
- Add py.typed for typed package by @fderuiter in #164
- Update AGENTS guidelines by @fderuiter in #165
- Add export helpers by @fderuiter in #167
- Add export CLI group by @fderuiter in #171
- Add Airflow export utilities by @fderuiter in #172
- Enable pydantic mypy plugin by @fderuiter in #175
- Update docs for setup script by @fderuiter in #174
- Clean up comments and remove unused state variable by @fderuiter in #176
- Add optional e2e tests by @fderuiter in #173
- Add async methods across endpoints by @fderuiter in #177
- Expose Role model by @fderuiter in #178
- Fix duplicate OpenTelemetry section by @fderuiter in #179
- Update register_subjects workflow return type by @fderuiter in #180
- Fix async tests setup by @fderuiter in #182
- Improve e2e live tests by @fderuiter in #184
- Add async study structure workflow by @fderuiter in #185
- Add caching for forms and intervals list endpoints by @fderuiter in #186
- Clean workflows init by @fderuiter in #187
- Add E2E coverage for more list endpoints by @fderuiter in #188
- Fix Study retrieval using list filtering by @fderuiter in #189
- Add list-get checks in e2e tests by @fderuiter in #190
- Add schema validator tests by @fderuiter in #191
- Add job status & wait CLI tests by @fderuiter in #192
- Add version command to CLI by @fderuiter in #194
- Revert "Add version command to CLI" by @fderuiter in #196
- Add new CLI subcommands by @fderuiter in #195
- Add coverage details to live test plan by @fderuiter in #199
- Add API overview docs by @fderuiter in #198
- Add subject-data CLI command by @fderuiter in #193
- Add API overview docs by @fderuiter in #197
- docs: integrate live test plan by @fderuiter in #200
- Organize live tests by @fderuiter in #201
- Organize live tests by @fderuiter in #202
- Update README badges by @fderuiter in #203
- Add tests for date and filter utilities by @fderuiter in #204
- Add architecture diagram by @fderuiter in #206
- Add integration tests for core client and endpoints by @fderuiter in #205
- Fix MyPy execution by @fderuiter in #207
- Move examples out of package by @fderuiter in #208
- Refactor CLI into package by @fderuiter in #213
- Move validators to utils by @fderuiter in #214
- Add pip-audit to CI by @fderuiter in #212
- Update ruff config and rename endpoint path constants by @fderuiter in #215
- Refactor AsyncImednetSDK location by @fderuiter in #216
- Refactor RecordMapper dataframe by @fderuiter in #219
- Refactor Airflow integration layout by @fderuiter in #220
- Refactor HTTP error handling by @fderuiter in #221
- Refactor SDK initializer by @fderuiter in #222
- Refactor type checking registry by @fderuiter in #223
- Refactor utils getattr lookup by @fderuiter in #224
- Move schema validation to dedicated package by @fderuiter in #226
- Fix base URL handling by @fderuiter in #227
- Refactor record updates with job poller by @fderuiter in #228
- Revert "Refactor record updates with job poller" by @fderuiter in https://gi...