Skip to content

v1.0.0

Choose a tag to compare

@saksham-nexla saksham-nexla released this 24 Sep 22:16
· 38 commits to main since this release
528e2ef
Nexla SDK V2 (#5)

* Update version to 0.1.2 and enhance README with new features and examples

- Bump version in `pyproject.toml` to 0.1.2.
- Update authors in `pyproject.toml` to include Amey Desai and Saksham Mittal.
- Add new features (Audit Logs, Metrics, Notifications, Schemas, Quarantine Settings) to the README.
- Expand examples section in README with detailed structure and instructions for running examples.

* Update pyproject.toml for version management and enhance GitHub Actions workflow

- Bump setuptools requirement to 45 and add setuptools_scm for dynamic versioning.
- Change version specification in pyproject.toml to dynamic.
- Update GitHub Actions workflow to fetch full history for setuptools_scm and verify version using it instead of extracting from tags.

* Update GitHub Actions workflow to include setuptools_scm for version management

- Added setuptools_scm to the dependencies in the release workflow to support dynamic versioning.

* Refactor authentication handling in Nexla SDK

- Enhanced `TokenAuthHandler` to support both Service Key and Direct Token authentication flows, improving flexibility.
- Updated `NexlaClient` to validate authentication parameters and handle token management more effectively.
- Added detailed documentation for authentication methods and usage examples in the client class.
- Improved error handling for token refresh and validation processes.

* Update client.py

* Enhance token management in TokenAuthHandler and add refresh_access_token method in NexlaClient

- Increased token_refresh_margin from 600 to 3600 seconds for improved token validity.
- Updated token expiry logic to set a default expiry of 86400 seconds for direct tokens.
- Introduced refresh_access_token method in NexlaClient to allow forced token refresh for both service key and direct access tokens, enhancing token management capabilities.

* Refactor SDK documentation and structure

- Added new markdown files for authentication patterns, error handling patterns, examples standards, and project structure.
- Updated README.md to include API documentation and support links.
- Introduced new utility files for handling exceptions and pagination.
- Cleaned up example scripts and tests to align with the new structure.

* Refactor API structure and enhance model definitions

- Updated `TokenAuthHandler` and `NexlaClient` to use `base_url` instead of `api_url` for improved clarity.
- Enhanced `RequestsHttpClient` to handle empty responses and non-JSON content more gracefully.
- Introduced new utility methods in `BaseModel` for better serialization to dictionary and JSON formats.
- Added various enums and refined model imports across the SDK for better organization and clarity.
- Updated resource classes to support new request and response models, improving type safety and usability.

* Refactor access control models and remove AccessorRule

- Removed the AccessorRule model from the SDK to streamline access control definitions.
- Introduced new models for user, team, and organization accessors, enhancing clarity and usability.
- Updated resource methods to utilize the new accessor request and response models, improving type safety.
- Organized access-related models into a dedicated module for better structure.

* Enhance organization models and resource methods

- Introduced new request models for organization creation and member management, improving the SDK's capabilities for handling organizations.
- Updated existing organization response models to include optional fields for better flexibility.
- Enhanced the OrganizationsResource class with methods for creating, activating, and deactivating organization members, as well as retrieving account summaries and audit logs.
- Refined user response models to include optional API key fields, improving user management features.
- Corrected path references in LookupsResource for consistency.

* Enhance error handling and context in Nexla SDK

- Improved error handling in `NexlaClient` and `BaseResource` to provide detailed context for exceptions, including HTTP method, path, and request parameters.
- Updated `NexlaError` class to include additional attributes for operation, resource type, and original error, allowing for more informative error messages.
- Refactored `_make_request` method in `BaseResource` to capture and re-raise exceptions with enhanced context, improving debugging capabilities.
- Ensured consistent error handling across various resource methods, enriching the SDK's robustness in managing API interactions.

* Refactor exception handling in Nexla SDK

- Moved exception classes from `nexla_sdk.utils.exceptions` to `nexla_sdk.exceptions` for better organization.
- Enhanced `NexlaError` class with additional attributes for detailed error context, including operation, resource type, and original error.
- Introduced new specific exception types such as `AuthenticationError`, `AuthorizationError`, `ValidationError`, and others to improve error handling granularity.
- Updated relevant imports across the SDK to reflect the new exception structure, ensuring consistent error management.

* Enhance Nexla SDK with new connector models and improved test coverage

- Introduced numerous new connector models to expand integration capabilities across various platforms.
- Refactored existing models for better organization and clarity.
- Enhanced test suite with additional integration and unit tests to ensure robust functionality and reliability.
- Updated documentation to reflect new features and usage examples, improving developer experience.

* Update connector models and enhance SDK documentation

- Added numerous new connector models to expand integration capabilities across various platforms.
- Refactored existing connector models for improved organization and clarity.
- Enhanced the README.md with updated usage examples and documentation for new features.
- Improved test coverage for connector models to ensure robust functionality and reliability.

* Add pre-commit configuration and contributing guidelines

- Introduced a pre-commit configuration file to enforce code quality checks using Ruff, Black, and Isort.
- Added a CONTRIBUTING.md file to outline setup instructions, coding standards, testing guidelines, and release procedures for contributors.
- Updated pyproject.toml to require a newer version of setuptools for better compatibility.
- Enhanced README.md with clearer instructions on using service keys and environment variables.
- Implemented CI workflow for automated testing across multiple Python versions.

* Add comprehensive documentation and new configuration files for SDK

- Introduced a new documentation site structure with multiple markdown files covering authentication, error handling, guides, and API references.
- Added configuration files for Docusaurus to enhance documentation generation and site navigation.
- Updated existing README.md and pyproject.toml to reflect new documentation and project structure.
- Included example scripts and improved test coverage for the telemetry module.
- Enhanced .gitignore to exclude unnecessary files from version control.

* Refactor imports and clean up unused code in SDK

- Removed unnecessary imports from various modules, including `json`, `time`, and unused type hints.
- Streamlined the import statements in `gen_api_docs.py`, `fetch_resources.py`, and several model files for better readability.
- Enhanced consistency across the codebase by ensuring only required imports are included, improving maintainability.

* Enhance testing utilities and improve test coverage

- Added new testing dependencies in `pyproject.toml` for better test management, including `pytest-cov`, `pytest-xdist`, and `hypothesis`.
- Updated `pytest.ini` to include a new marker for integration tests related to team creation.
- Refactored test data generation in `test_credentials.py` and `test_sources.py` to avoid whitespace/control characters in names and descriptions, ensuring more robust property testing.
- Improved error handling in test cases to cover various edge cases and enhance overall test reliability.

* Update Node.js version and enhance Docusaurus configuration

- Updated Node.js version from 18 to 20 in the GitHub Actions workflow for improved compatibility.
- Added a check for Node.js version in the Docusaurus configuration to conditionally load the local search plugin.
- Updated package.json to specify a minimum Node.js version of 20.
- Revised README.md to reflect the updated Node.js requirement.

* Update documentation links and remove outdated file

- Updated links in the getting started guide for authentication and error handling sections to reflect new paths.
- Deleted the outdated 'what-is-nexla-sdk.md' file from version 0.1.8 as it is no longer needed.