Enable low-code CDK users to specify schema in the manifest
Also update documentation:
* Add inline schema loader info to yaml-overview.md
* Include inline schema info in tutorial
* Rough first implememtation of AvailabilityStrategy s
* Basic unit tests for AvailabilityStrategy and ScopedAvailabilityStrategy
* Make availability_strategy a property, separate out tests
* Remove from DeclarativeSource, remove Source parameter from methods, make default no AvailabilityStrategy
* Add skip stream if not available to read()
* Changes to CDK to get source-github working using AvailabilityStrategy, flakecheck
* reorganize cdk class, add HTTPAvailabilityStrategy test
* cleanup, docstrings
* pull out error handling into separate method
* Pass source and logger to check_connection method
* Add documentation links, handle 403 specifically
* Fix circular import
* Add AvailabilityStrategy to Stream and HTTPStream classes
* Remove AS from abstract_source, add to Stream, HTTPStream, AvailabilityStrategy unit tests passing for per-stream strategies
* Modify MockHttpStream to set no AvailabilityStrategy since source test mocking doesn't support this
* Move AvailabilityStrategy class to sources.streams
* Move HTTPAvailabilityStrategy to http module
* Use pascal case for HttpAvailabilityStrategy
* Remove docs message method :( and default to True availability on unhandled HTTPErrors
* add check_availability method to stream class
* Add optional source parameter
* Add test for connector-specific documentation, small tests refactor
* Add test that performs the read() function for stream with default availability strategy
* Add test for read function behavior when stream is unavailable
* Add 403 info in logger message
* Don't return error for other HTTPErrors
* Split up error handling into methods 'unavailable_error_codes' and 'get_reason_for_error'
* rework overrideable list of status codes to be a dict with reasons, to enforce that users provide reasons for all listed errors
* Fix incorrect typing
* Move HttpAvailability to its own module, fix flake errors
* Fix ScopedAvailabilityStrategy, docstrings and types for streams/availability_strategy.py
* Docstrings and types for core.py and http/availability_strategy.py
* Move _get_stream_slices to a StreamHelper class
* Docstrings + types for stream_helpers.py, cleanup test_availability.py
* Clean up test_source.py
* Move logic of getting the initial record from a stream to StreamHelper class
* Add changelog and bump minor version
* change 'is True' and 'is False' behavior
* use mocker.MagicMock
* Remove ScopedAvailabilityStrategy
* Don't except non-403 errors, check_stream uses availability_strategy if possible
* CDK: pass error to reasons_for_error_codes
* make get_stream_slice public
* Add tests for raising unhandled errors and retries are handled
* Add tests for CheckStream via AvailabilityStrategy
* Add documentation for stream availability of http streams
* Move availability unit tests to correct modules, report error message if possible
* Add test for reporting specific error if available
* [ISSUE #15628] apply lookback window on earliest datetime between start and cursor
* [ISSUE #15628] update release information and clean return statement
* Raise exception with error message
* read from detail field if no other value was found
* format
* dont test the error message
* format
* error code
* bump
* break resolving reference preprocessing into its own class so it can be reused
* move reference resolution into the ManifestDeclarativeSource and deprecate the parser
* formatting
* last formatting i promise
* rename
* bump version
Co-authored-by: Alexandre Girard <alexandre@airbyte.io>
* don't update cursor for log messages and and default schema path coming from connector builder
* replace check for connector_builder module with a basic default file path
* update changelog and patch version
* catch the correct exception when pkgutil can't load json file
* allow for spec to be defined in the source.yaml manifest instead of an external file
* make spec a component within the language to get schema validation and rework the code for better testing
* fix formatting and extra method
* pr feedback and add some more test
* pr feedback
* bump airbyte-cdk version
* bump version
* gradle format
* remove from manifest spec
* replace emptySchemaLoader with DefaultSchemaLoader
* fix test name
* fix test
* add logging for when we default to the empty schema
* increment patch version
* fix formatting
* update changelog
* use mockschemaloader as the default and rename JsonSchema to JsonFileSchemaLoader
* rename mock to EmptySchemaLoader
* retain existing JsonSchema while hacktoberfest is still in progress
* bump version and changelog
* support custom error messaging for error response + retryable errors
* remove changed backoff i was using for testing
* refactor filter to construct response status internally
* pr feedback
* bump version and update changelog
* schema helpers raises a config_error
* traced exceptions can be turned into connection status messages
* add tests for schema helpers
* return a failed status message rather than throwing in check command
* remove unused imports
* add comment
* bump version / update changelog
* Added new "filters" python file, along with a "hash" filter. This can be extended to include other custom filters in the future.
* Added additional comments
* Moved usage of the hash_obj inside the conditional that confirms it exists
* Moved the hash function call inside a condition to ensure that it exists
* Fixed the application of the salt , so that it does not modify the hash unless it is actually passed in.
* Added unit tests to validate new jinja hash functionality
* Updated unit test to pass numeric value as a float instead of string
* Removed unreferenced import to pytest
* Updated version
* format
* format
* format
* format
* format
Co-authored-by: Alexandre Girard <alexandre@airbyte.io>
* input can only be a string
* remove debug print
* cleanup tests
* fix in the factory
* Add a unit test
* fix for lists
* Update changelog
* Update changelog