Releases: fderuiter/imednet-python-sdk
Releases · fderuiter/imednet-python-sdk
v0.5.0
What's Changed
- 🧪 Add tests for parse_bool with unusual and edge-case inputs by @fderuiter in #833
- 🧹 Consolidated duplicated export setup logic by @fderuiter in #834
- 🔒 Insecure Randomness Fix in Form Designer by @fderuiter in #832
- 🛡️ Shield: Add async coverage to RecordUpdateWorkflow by @fderuiter in #836
- ⚡ Performance Optimization: Resolve N+1 Query in export_to_sql_by_form by @fderuiter in #835
- 🏛️ Architect: [MRO Inheritance Refactor] by @fderuiter in #837
- 🛠️ Refactor: Fix MRO for GenericListGetEndpoint and JobsEndpoint by @fderuiter in #838
- 🏛️ Architect: Endpoints - Fix property overriding by @fderuiter in #839
- 🏛️ Architect: Endpoint Configuration Flags by @fderuiter in #840
- 🖋️ Scribe: Clarify README Troubleshooting for Invalid API Keys by @fderuiter in #842
- 🛡️ Shield: Add sad path validation tests for register_subjects by @fderuiter in #843
Full Changelog: v0.4.3...v0.5.0
v0.4.3
What's Changed
- 🏗️ Architect: Modularize CLI Utils by @fderuiter in #652
- Refactor: JobsEndpoint uses ListPathGetEndpoint abstraction by @fderuiter in #653
- 🖋️ Scribe: Remove stale TUI documentation by @fderuiter in #654
- 🏗️ Architect: Refactor Endpoint Mixins by @fderuiter in #655
- Refactor JobPoller and CLI Output Utilities by @fderuiter in #658
- Refactor endpoints to use ABC and strict typing by @fderuiter in #660
- 🛡️ Shield: Fix inconsistent boolean parsing for float strings by @fderuiter in #659
- Refactor Endpoints and JobPoller by @fderuiter in #661
- 🏗️ Architect: Modularize HTTP Core & Fix Retry Logic by @fderuiter in #666
- Refactor CreateEndpointMixin for explicit sync/async execution by @fderuiter in #667
- Refactor Endpoint Mixins for DRY and SOLID Principles by @fderuiter in #663
- 🏗️ Architect: Refactor Endpoint State Passing by @fderuiter in #670
- Refactor: Extract CLI export logic to utility by @fderuiter in #672
- Docs: Add Veeva Vault Integration Developer Documentation by @fderuiter in #669
- 🏗️ Architect: Decouple Generic and EDC Endpoint Logic by @fderuiter in #674
- Refactor endpoints for DRY and SOLID principles by @fderuiter in #675
- Refactor endpoint mixins for explicit sync/async dispatch by @fderuiter in #676
- Refactor RecordsEndpoint for explicit sync/async execution by @fderuiter in #677
- 🏗️ Architect: Refactor RequestExecutor for Modularity by @fderuiter in #680
- Refactor Endpoint Mixins for DRY and SOLID by @fderuiter in #681
- Refactor ListEndpointMixin to remove implicit _prepare_execution by @fderuiter in #682
- 🏗️ Architect: Refactor ParamMixin to use Strategy Pattern by @fderuiter in #683
- docs: fix broken CLI export sql example and clarify table argument behavior by @fderuiter in #678
- Shield: Fix Pandas warning and improve export sanitization tests by @fderuiter in #684
- docs: document airflow extra in README and docs by @fderuiter in #685
- Refactor HTTPClientBase to use polymorphism by @fderuiter in #692
- 🛡️ Shield: Harden BasePaginator against invalid API response types by @fderuiter in #694
- 🛡️ Shield: Enforce strict validation for site and interval identifiers by @fderuiter in #689
- docs: clarify manual installation requirement for Airflow integration by @fderuiter in #695
- docs: remove misleading Veeva integration documentation by @fderuiter in #699
- 🛡️ Shield: Fix silent failure in JsonListPaginator by @fderuiter in #698
- Refactor endpoint caching to be explicit and typed by @fderuiter in #700
- 🖋️ Scribe: Fix broken Airflow installation instructions by @fderuiter in #706
- Refactor ParamMixin to use StudyKeyStrategy by @fderuiter in #707
- Shield: Fix retry policy for 5xx/429 and improve error reporting by @fderuiter in #705
- Refactor RecordsEndpoint validation and security logic by @fderuiter in #711
- 🏗️ Architect: Refactor List Operations and Param Processing by @fderuiter in #713
- 🛡️ Shield: Fix Paginator crash on invalid 'pagination' field by @fderuiter in #714
- Standardize configuration in example scripts by @fderuiter in #715
- Refactor RecordsEndpoint to use RecordCreateOperation by @fderuiter in #716
- refactor: cleanup endpoints and mixins (DRY/SOLID) by @fderuiter in #718
- Migrate to src layout by @fderuiter in #719
- 🛡️ Shield: Robust numeric timestamp parsing by @fderuiter in #720
- 🛡️ Shield: Expand JSON roundtrip tests for all fake data payloads by @fderuiter in #724
- 🏗️ Architect: Strongly typed HTTPClientBase and model cleanup by @fderuiter in #723
- 🛠️ Refactor: Core - Extract PathGetOperation by @fderuiter in #722
- Refactor: Extract inline normalizer closures in json_base.py by @fderuiter in #721
- 🖋️ Scribe: Fix broken mypy command in documentation by @fderuiter in #726
- 🖋️ Scribe: Update README to specify CLI usage with poetry run in dev environment by @fderuiter in #727
- 🖋️ Scribe: Fix broken mypy command path in README by @fderuiter in #725
- 🖋️ Scribe: Fix broken quickstart examples using .env files by @fderuiter in #728
- 🏗️ Architect: Add
intervalsCLI command by @fderuiter in #730 - 🖋️ Scribe: Fix examples README execution command by @fderuiter in #731
- 🏗️ Architect: Refactor SchemaValidator to use explicit is_async argument by @fderuiter in #733
- 🛡️ Shield: Complete core parsing and endpoint ABC test coverage by @fderuiter in #732
- 🛠️ Refactor: SubjectsEndpoint - Extract list filter attribute logic by @fderuiter in #734
- 🖋️ Scribe: fix broken mypy command in contributing docs by @fderuiter in #735
- 🏛️ Architect: Refactor
SchemaValidatorinto explicit Sync/Async classes by @fderuiter in #738 - 🛠️ Refactor: SDK Core - Remove obsolete legacy endpoint base classes by @fderuiter in #737
- 🛡️ Shield: Ensure 100% test coverage for get endpoint mixins and operations by @fderuiter in #736
- 🏗️ Architect: Extract FilterGetOperation to enforce SOLID in endpoints by @fderuiter in #740
- 🛡️ Shield: Add test coverage for SchemaValidator form identifier edge cases by @fderuiter in #739
- 🖋️ Scribe: Update README Quick Start to use explicit environment variables by @fderuiter in #741
- 🛡️ Shield: test validation schema deprecation warning and exports by @fderuiter in #742
- 🖋️ Scribe: Clarify .env file usage for standalone scripts by @fderuiter in #745
- 🏛️ Refactor: Paginator - Generic strict typing & Explicit fetch logic by @fderuiter in #744
- 🛠️ Refactor: Endpoint Mixins - Decouple FilterGet from Dummy List Methods (ISP) by @fderuiter in #743
- 🛡️ Shield: ImednetSDK Client Cleanup Context Manager Test Defenses by @fderuiter in #746
- 🏗️ Architect: Centralize exception hierarchy in imednet/errors by @fderuiter in #747
- 🏗️ Architect: Refactor
build_filter_stringby @fderuiter in #748 - 🖋️ Scribe: Fix broken example onboarding paths by using explicit exports by @fderuiter in #749
- 🏗️ Architect: Endpoints - Composition over Inheritance by @fderuiter in #752
- 🏗️ Architect: Fix hidden mutable state bug in
ParamMixin._resolve_paramsby @fderuiter in #751 - 🛡️ Shield: Add sad path boundary tests for pagination by @fderuiter in #750
- 🏗️ Architect: Statically ...
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