Skip to content

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

Latest

Choose a tag to compare

@Chaffelson Chaffelson released this 28 Sep 19:07
· 1 commit to main since this release
v1.0.0
f05687d

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