All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Correct version specifier for pydantic. #57
- Add subrequests tests. #52
- Move README sections into /docs with farmOS.org config.yml.
- Add github workflow to build netlify docs.
- Run tests on pull requests to 1.x.
- Test
resource.iterate
method with a page limit. - Only use the path from the
next_url
when iterating over resources.
- Do not include the endpoint property in the serialized subrequest.
- Update client_2x Subrequests docs to include a plant_type when creating the plant asset.
- Correct test_invalid_login to expect InvalidGrantError: https://www.drupal.org/project/simple_oauth/issues/3193609
- Specify correct Content-Type header for 1.x servers.
- The
token_updater
defaults to an empty lambda function to suppress therequests_oauthlib.TokenUpdated
exception. - Set default values in preparation for farmOS 2.x. The
version
defaults to 2 and scope defaults tofarm_manager
.
- First beta release.
- Create a resource.get_id method instead of supplying an ID as the filters param. #42
- Rename the
filters
parameter toparams
. #42
- Support for subrequests. #43
- Use the common OAuth Token path
/oauth/token
available in farmOS ^1.6 - Initial support for farmOS 2.x servers #39
- Add iterator support to the 2.x client methods #2
- Removed support for the Drupal Session Auth has been removed from the client.
- Removed
farm.authenticate()
method (usefarm.authorize()
instead). - Removed dependency on ConfigParser used to save default OAuth config and profiles.
- Removed support for OAuth Authorization flow. This can be completed externally of the farmOS.py library.
- Add
farm.authorize()
method for consistency with OAuth and farmOS.js API. - Re-export
HTTPError
and OAuth exceptions for convenience. - Additional OAuth tests.
- Black code formatting.
- Don't make requests to
/farm.json
and/restws/session/token
#37 - Write tests for OAuth Integration #33
- Support for OAuth Clients on the farmOS Server!
- Default to
user_access
OAuth Scope - Set default
oauth_client_id
tofarm
- Updated documentation.
- Unset the 'expires_at' key to avoid Requests Exception
- Add an optional
token
parameter to the client API for supplying OAuth tokens.
- Fix spelling of default
oauth_scope
config key - Use mapping protocol access instead of the Legacy get/set API for ConfigParser. Fixes bug for loading tokens from config.
- Support for custom OAuth Clients #32
- Complex passwords are not correctly read from config file. #29
- Add logging with the Python standard logging module. #21
- Only save the client_id and client_secret to a profile if provided.
- Add a path attribute to farm.info() to allow requesting other endpoints.
- Include X-CSRF token in all requests. Fixes #22
- Remove hostname parameter when creating ClientConfig.
- Inject a profile_id into the token before saving.
- Allow a ClientConfig object to be passed to the client.
- PEP8 Code Fixes #20
- Allow hostnames without a scheme, try to build a valid URL.
- Convert token values to string when saving to farm.config.
- Initialize self.profile_name to DEFAULT so default values are loaded from farm.config.
- Initialize self.config_file to None.
- Make default config values strings.
This release brings early support for farmOS OAuth! #18
- Structure the library to support multiple types of authentication
- Use configparser and config files to configure the client
- Add support the OAuth Authorization Flow
- Add support the OAuth Password Credentials Flow
- Auto-refresh Authentication Tokens by default
- Allow external methods to save tokens
- Save Authentication to a Profile in config file
- Update the format of response objects #15
- Ability to get requests in pages (default to all pages)
- Tests for paging of logs
- This CHANGELOG.md file
- Return values for
.send()
methods makingPUT
requests
farm.authenticate()
method for authenticating with farmOSfarm.info()
method for getting information about a farmOS instancefarm.log.get()
,farm.log.send()
,farm.log.delete()
farm.asset.get()
,farm.asset.send()
,farm.asset.delete()
farm.area.get()
,farm.area.send()
,farm.area.delete()
farm.term.get()
,farm.term.send()
,farm.term.delete()
- Framework for testing with
pytest
- Exception for
NotAuthenticatedError
- Simple examples in README