Skip to content

Releases: Chaffelson/nipyapi

Infrastructure and documentation fixes for post-1.0 release

10 Nov 17:06
v1.0.1
107e324

Choose a tag to compare

What's Changed

Infrastructure Fixes

  • ReadTheDocs configuration: Fixed .readthedocs.yaml to properly install package with docs extras, ensuring setuptools-scm is available for dynamic version detection. Stable docs now display correct version instead of 0.19.
  • Pylint 3.x compatibility: Updated pylintrc with ignore-paths regex patterns to properly exclude generated code directories (nipyapi/nifi/, nipyapi/registry/, _version.py) in CI environments using pylint 3.x.
  • CI workflow optimization: Reordered GitHub Actions steps to upload coverage reports before make test-dist runs, preventing make clean from deleting coverage.xml before codecov upload.

Documentation Updates

  • Branch references: Updated all documentation links from NiFi2x development branch to main default branch (README badges, contribution guide links, Sphinx source code references).
  • LICENSE: Added full Apache 2.0 license text to repository root.
  • Development workflow: Added .cursor/ to .gitignore for IDE-specific files.

Full Changelog: v1.0.0...v1.0.1

v1.0.0 - Migrate to NiFI 2.x, drops support for NiFi 1.x on main

28 Sep 19:07
v1.0.0
f05687d

Choose a tag to compare

1.0.0 (2025-09-28)


Major migration to Apache NiFi/Registry 2.x (tested against 2.5.0). Drops 1.x support on main
IMPORTANT To continue working with NiFi-1.x you should pin your requirements to nipyapi<1.0.0

Breaking Changes - Action Required

  • Function renaming: Upstream API specification changes result in operation IDs now using suffixed names (e.g., update_run_status1) and some other functions are also renamed
  • Authentication and configuration overhaul: Significant changes to align with modern API standards and upstream API changes
  • Users must review and update authentication patterns - legacy configuration methods will be different

Profile Management System

  • Extensible file format (YAML/JSON) with environment variable overrides and sane defaults - familiar workflow like AWS CLI
  • Intelligent authentication method detection: OIDC, mTLS, and Basic authentication based on available configuration parameters
  • Built-in profiles for common deployment patterns: single-user, secure-ldap, secure-mtls, secure-oidc
  • 15+ configurable parameters (URLs, credentials, certificates, SSL settings) with NIPYAPI_PROFILE environment variable
  • Profile switching with nipyapi.profiles.switch() configures endpoints, authentication, and SSL settings in single function call

Automated Development Workflow

  • Comprehensive Makefile targets for all key development and release processes
  • End-to-end automation: entire client generation and testing sequence from test certificates to final integration tests
  • GitHub Actions CI with full Docker NiFi integration tests and coverage reporting
  • Smart certificate regeneration and optimized rebuild flows to avoid unnecessary infrastructure cycling

Quick Start and Migration Tools

  • Sandbox Docker environment for testing different authentication mechanisms with make sandbox target
  • FDLC example retained and modernized to demonstrate proper multi-environment workflows (single-user dev, secure-ldap prod)
  • Comprehensive migration guide (docs/migration.rst) for upgrading from NiPyAPI 0.x/NiFi 1.x to 1.x/2.x

Core Technical Improvements

  • Documentation system rebuild: Complete Sphinx overhaul with individual pages for all Core client, NiFi APIs and Registry APIs - with a flat API structure with optimal navigation
  • Test coverage expansion: Comprehensive test suite with profile-driven automation rather than manual reconfiguration
  • Pre-commit checks: Automated code quality with trailing whitespace, debug statements, flake8, and pylint hooks
  • Modern dependency management: Migrated to python -m build, replaced ruamel.yaml with PyYAML, explicit urllib3/certifi/requests inclusion
  • Enhanced documentation: Direct GitHub source code links with line-level precision, standardized docstrings throughout generated clients
  • Profile-driven testing: Deprecated complex tox regression suite in favor of spec-driven single version testing
  • Legacy pruning: Removed Python 2.7 and NiFi 1.x references, deprecated template-era dependencies (lxml, xmltodict)
  • Codecov migration: Switched from Coveralls with pytest-cov integration and build process automation
  • Enhanced convenience functions: Improved set_endpoint and various ensure_* object functions
  • Certificate handling improvements: Resolved user complexity with automatic CA certificate setup and validation
  • Extensive authentication documentation: OIDC setup instructions, Safari keychain guidance, development vs production practices
  • API augmentation system: Client build-time patching for upstream API issues (currently: enum handling and missing security schemes)

Additional Details

New Contributors

Full Changelog: v0.22.0...v1.0.0

v0.22.0

25 Mar 10:53
e14d2f5

Choose a tag to compare

What's Changed

  • Updates to supported Python versions, handing Template deprecation in NiFi-2.x, and Windows development support by @Chaffelson in #381
  • Add support for mTLS by @Chaffelson in #382
  • Updated nifi and registry low level clients to v1.28.1 by @Chaffelson in #383

Full Changelog: v0.21.0...v0.22.0

v0.21.0

08 Oct 13:43
3010452

Choose a tag to compare

What's Changed

  • Fix API model generator by @michaelarnauts in #356
  • issue-360: handle -9 error messages better by @ottobackwards in #361
  • Handle plain text response types so json values are correctly returned by @michaelarnauts in #358
  • update clients to 1.27.0 by @Chaffelson in #365
  • Simplified the use of setattr in recurse_flow, flatten, and list_all_by_kind methods in nipyapi/canvas.py.
  • Added support for key_password in the Configuration class and its usage in nipyapi/nifi/rest.py and nipyapi/registry/rest.py.
  • Fixed the method to retrieve HTTP headers in nipyapi/nifi/rest.py and nipyapi/registry/rest.py.
  • Updated pylintrc to match more modern python standards
  • Fixed issue #326 where the latest flow version was not being deployed by default
  • Fixes nipyapi.nifi.ProcessGroupsApi.upload_process_group_with_http_info() incomplete #310
  • VersionedReportingTask added with appropriate functions
  • Move docker requirement to extras to avoid dependency install during standard usage
  • Set latest python3 version to 3.12
  • Added NiFi-2.0.0-M4 to testing suite, appears to work but compatibility not guaranteed using currently 1.x clients
  • Deprecate usage of py.test in favour of newer pytest.
  • Update readme

New Contributors

Full Changelog: v0.20.0...v0.21.0

Update to NiFI 1.23.2

15 Apr 09:50
1d52262

Choose a tag to compare

What's Changed

  • NiFi 1.23.2 update by @Hexoplon in #330

  • Update Python support to 3.7 through 3.11.

  • Update get_access_policy_for_resource no policy test by @jrittenh in #317

  • Update README with NiFi 1.17 support by @rsaggino in #314

  • feat(config): add ReportingTaskEntity to registered filters by @Hexoplon in #337

  • remove library setting root logger configuration by @ottobackwards in #340

  • Fix ruamel.yaml pinning. Fixes docs and test process for EC2. by @Chaffelson in #346

New Contributors

Full Changelog: v0.19.1...v0.20.0

Update to NiFi 1.17

08 Aug 22:07
v0.19.1
33daf40

Choose a tag to compare

What's Changed since 0.17

  • New github release notes feature, woop
  • NiFi 1.17 support
  • Added link to doc index for parameter contexts by @Jimvin in #302
  • Allow version validation to ignore NiFi or Registry when checking for parameter support by @ChrisSamo632 in #304
  • Adds child cascading to assign_context_to_process_group by @sdairs in #267
  • Fix bug in security.bootstrap_security_policies by @PieterDM in #261

New Contributors since 0.17

Update to NiFi-1.16

13 May 20:12
v0.19.0
27b2228

Choose a tag to compare

  • modify utils.check_version to accept a default version to check against, and remove nested error when version check fails as it is overzealous
  • Update test file paths in test_utils in case someone runs tests as root which actually can write to fake devices and therefore break the tests
  • Updated clients for 1.16
  • Added pylint exclusions for known but unimportant complaints
  • Added workaround for NiFi 9470 by providing default inherited_parameter_contexts per advice from Chris Sampson in NiPyAPI Issue #305
  • Fixes #305
  • Updated NiFi and Registry versions in Docker compose configs to use latest 1.16.1 builds

NiFi and NiFi-Registry 1.15.0 support

29 Nov 17:53
v0.18.0
0d82220

Choose a tag to compare

  • Moved testing to secured single user by default for NiFi
  • Consolidated clients to the 1.15.0 release version for both NiFi and Registry
  • Updated logic to support changed working modes in tests
  • Corrected minor functional issues for 1.15 in login handling, SSL certs, Parameter Updates and Testing
  • Backwards compatibility and Regression tested as requiring no breaking changes

Python 3.9 testing and gzip headers

21 Oct 09:10
v0.17.1
fb67492

Choose a tag to compare

Added gzip as default request header (PR from @rsaggino )
Update ruamel.yaml to 0.17.16
Update file read/write to explicitly handle encoding per best practices; default to UTF8; configurable in nipyapi.config
Linting and style changes to update to Python 3.9 standards, except where it would break backwards compatibility to Python 2.7
Test support for Amazon Linux 2, mostly better error handling for filesystem responses

Update NiFi to 1.13.2 and NiFi-Registry to 0.8.0

13 Oct 08:40
v0.17.0
2a7f181

Choose a tag to compare

Update NiFi and client to 1.13.2
Update Registry and client to 0.8.0
Minor spelling and linting fixes
Removed travisCI build indicator as TravisCI itself has been broken for a while, will move to new build service
Removed extraneous nifidev and registrydev containers from tox-full docker-compose definition

Note that Python 3.9 has SSL issues, but the library is testing as normal with 3.5-3.8/2.7.