Changes:
- Drop Python 3.6, 3.7 support.
- Deprecate Python 3.8 (EOL 2024-10 planed, supported until then).
- Add Python 3.12 support.
- Update docker with latest
python:3.11-alpine3.20
base.
Changes:
- Add CI workflow tests for Python 3.9, 3.10 and 3.11, and use 3.11 by default for all linting and coverage tests.
- Use Python 3.11 in Dockerfile for latest performance improvements and security fixes.
- Convert comment typing definitions into typing annotations.
Changes:
- Add
/ows/verify/{service_name}[/{extra_path}]
endpoint analoguous to/ows/proxy/{service_name}[/{extra_path}]
to only verify if access is granted to this service, for that specific resource path, and for the authenticated user, without performing the proxied request. This can be employed by servers and external entities to validate that authorization will be granted for the user without executing potentially heavy computation or large data transfers from the targeted resource that would otherwise be performed by requesting the/ows/proxy
equivalent location. One usage example of this feature is using NGINX Authentication Based on Subrequest Result to verify an alternate resource prior to proxying a service request that needs authenticated access to the first resource. - Add the OWS proxy
send_request
operation under thetwitcher.adapter
interface to allow it applying relevant proxying adjustments when using derived implementation. TheDefaultAdapater
simply calls the original function that was previously called directly instead of using the adapter's method. - Removed the
extra_path
andrequest_params
arguments from OWS proxysend_request
to better align them with arguments from other adapter methods. These parameters are directly retrieved from therequest
argument, which was also provided as input tosend_request
.
Changes:
- Add request and response hooks operations to adapter allowing derived implementations to modify OWS proxied requests and returned responses from the service. The default adapter applies no modifications to the original definitions.
Changes:
- Enforce regeneration of the
OWSRegistry
object on each request to avoid incorrect handling by adapters that require the new transaction or refreshed database session state each time.
Changes:
- Integrate functionality changes of
0.5.x
branch back into0.6.x
. - Align
twitcher.adapter
features of0.6.x
branch to support0.5.x
behaviour. - Revert removal of
ServiceStoreInterface
to provide relevant implementation details to external adapters. - Apply missing interface classes as bases to default implementations.
- Add
owsproxy_uri
in frontpage response. - Use
hybrid_property
to provide directtwitcher.models.Service.verify
setter instead of protected_verify
. - Add more logging and handling of errors to catch cases where adapter doesn't return a valid
Service
instance. - Add
scoped_session
tosession_factory
object to ensure distinct connections and transactions are created for concurrent requests.
Changes:
- Added Keycloak support (#91).
- Added Keycloak demo notebook ( #92, #93, #94).
- Refactor models definitions (
Service
,Client
,Token
). - Refactor
twitcher.adapter
instantiation. - Drop
rpcinterface
feature and endpoint. - Drop
owsproxy_delegate
endpoint. - Drop
owsproxy_secure
endpoint.
Changes:
- Add Github Actions workflow to run local tests and Docker smoke tests for pre-validation of features and changes.
- Add Github issue, feature request and pull request templates.
Fixes:
- Pin packages
pyramid<2
,zope.sqlalchemy>=1.5
andsqlalchemy>=1.4,<2
to avoid errors with conflicting and upcoming release and features employed in code. - Fix failing
cryptography
package build step in Docker image due to missingg++
andrust
dependencies (rust
installed viacargo
).
Fixes:
- Update invalid reference to
python3-dev
in docker image. Travis-CI is also updated to run a smoke test build of this docker image prior to merge to help early detection of problems prior to deploy triggers from tags.
Changes:
- Replace
waitress
bygunicorn
to resolve issue related to slow download of large files (#97).
Changes:
- Reduce log level of
"failed security check"
fromexception
towarning
as it corresponds to the expected code behavior (unauthorised access) whenOWSException
is raised, instead of dumping an unhandled error traceback.
New Features:
- Adds route
/info
which returns contents oftwitcher.__version__
. - Adds route /versions which returns version details such as Twitcher app version and employed adapter version.
Changes:
- Updated
README.rst
to match recent development, reference and docker image link. - Adds URI of
/info
and/versions
routes in the frontpage response. - Corresponding HTTP status codes are returned for raised
OWSException
.
Fixes:
New Features:
- Add postgres extra requirements for when it is used as database driver with
sqlalchemy
.
Changes:
- Use
container
instead ofconfig
forAdapterInterface.owsproxy_config
to match real use cases.
Fixes:
- Improve the adapter import methodology to work with more use cases (Ouranosinc/Magpie#182).
- Fix incorrect setup for bump version within
Makefile
. - Fix Twitcher
main
includingtwitcher.<module>
instead of.<module>
.
Changes:
- Skipped Buildout (#49).
- Replaced mongodb by sqlalchemy (#51).
- Simplified
Makefile
and skipped conda targets (#75). - Add
Makefile
targets fordocker
,bumpversion
andcoverage
analysis related tasks (#67). - Removed unused
config
module (#70).
New Features:
- Provided a
Dockerfile
for building Twitcher (#67). - Provide
AdapterInterface
to allow overriding store implementations with configuration settingtwitcher.adapter
(#67). - Add version auto-update (number and date) of these 'changes' with
bump2version
(#67).
Fixes:
- Update requirements with missing dependencies when building docker image.
- Various fixes ( #71, #72, #73, #74)
Changes:
- Skipped Python 2.7 support (#61).
- Added public URL "purl" (#58).
- Added SSL verify option (#55).
- Skipped internal WPS (#52).
- Moved tests to top-level folder (#47).
Fixes:
New Features:
- make protected path configurable (#36).
Fixes:
- Fixed exclude filter in
MANIFEST.in
.
New Features:
- Feature #28: use request upstream when not using WPS
(e.g download file through
thredds
).
- Fix PEP8
- Removed unused
c4i
option. - Added
auth
option to set authentication method. - Updated docs for usage of x509 certificates.
New Features:
- Feature #25: using x509 certificates for service authentication.
- Fix PEP8.
- Updated makefile.
- Updated buildout recipes.
- Fixed nginx dependency.
- Updated mongodb 3.4.
- Configured csrf in
xmlrpc
. - Fixed tutorial example.
- Added readthedocs, licence and chat badges.
- Updated logging.
- Fixed: creates workdir if it does not exist.
- Fixed fetching of access token when service is public.
- Set header
X-X509-User-Proxy
.
- Fix PEP8.
- Set permission of
certfile
. - Added option
ows-proxy-delegate
.
- Fix PEP8.
- Changed rpc interface.
- Added twitcher.client module.
- Using esgf scls service to get credentials.
- Updated internal pywps to version 4.0.0.
- Using default port 5000.
- Added ipython notebook examples.
- Moved
namesgenerator
to top-level. - Added
_compat
module for Python 3.x/2.x compatibility. - Added
twitcher.api
and cleaned up rpcinterface. - Added
twitcher.store
with mongodb and memory implementation. - Added
twitcher.datatype
withAccessToken
andService
. - Using https port only.
- Using
OWSExceptions
on errors in owsproxy.
- Fix PEP8.
- Using
replace_caps_url
inowsproxy
. - Pinned
mongodb=2.6*|3.3.9
. - Replaced
service_url
byproxy_url
. - Added
wms_130
and renamedwms_111
.
- Fix PEP8.
- Using
doc2dict
, renamedget_service_by_name()
. - Added support for c4i tokens.
- Updated deps:
pytest
,mongodb
. - Updated buildout recipes.
- Fixed functional tests.
- Fix PEP8.
- Don't allow duplicate service names.
- Register service with public access.
- WMS services can be registered.
- Updated to new buildout with separated conda environment.
- Replaced nose by pytest.
- Updated installation docs.
Fixes:
- Update of service failed (#17).
- Updated docs.
- Renamed Python package to
pyramid_twitcher
. - Conda
environment.yml
added. - Using
get_sane_name()
. - Replaced
httplib2
byrequests
.
Fixes:
- Don't check token for allowed requests (#14).
- Ignore decoding errors of response content (#13).
- Fixed twitcher app config: wrong egg name.
- Fixed docs links
- Fixed
MANIFEST.in
- Fixed service database index.
- Updated
Makefile
. - Added more links to appendix.
Initial Release.