Changes¶
Unreleased (latest)¶
Nothing yet.
3.5.1 (2021-02-08)¶
Features / Changes¶
Add URL endpoint to receive temporary tokens to complete pending operations (in preparation of PR #378).
Bug Fixes¶
Fix rendering of path parameter details within OpenAPI schemas.
Fix
alembic
migration failing due to new version updates of package (see diff 1.4.3 => 1.5.2).Fix documentation references and generation with updated Sphinx extension packages.
Bump version of
Twitcher
tov0.5.5
to obtain its Docker dependency fixes (see PR bird-house/twitcher#99).
3.5.0 (2021-01-06)¶
Features / Changes¶
Add
Group
priority to resolve inherited permission resolution in case of multiple entries from different group memberships of the evaluatedUser
.Add
reason
field to returnedPermission
objects to help better comprehend the provenance of a composed set of permissions fromUser
and its multipleGroup
memberships.Make special
MAGPIE_ANONYMOUS_GROUP
have less priority than other genericGroup
to allow reverting publicDENY
permission by one of those more specificGroup
withALLOW
permission.Simplify and combine multiple permission resolution steps into
PermissionSet.resolve
method.Resolve permissions according to closest
Resource
scope against applicable priorities.Update documentation with more permission resolution concepts and examples.
Bug Fixes¶
Fix invalid submission of
Group
memberships fromUser
edit UI page to ignoreMAGPIE_ANONYMOUS_GROUP
presence or omission since it cannot be edited regardless (blocked by API).Fix session retrieval in case of erroneous cookie token provided in request and not matching any valid
User
. This could happen in case of previously validUser
token employed right after it got deleted, making corresponding ID unresolvable until invalidated by timeout or forgotten, or by plain forgery of invalid tokens.Fix returned
Group
ID in response from creation request. Value wasNone
and required second request to get the actual value. The ID is returned immediately with expected value.
3.4.0 (2020-12-09)¶
Features / Changes¶
Add option to delete the
User
’s own account.Add
MAGPIE_TEST_VERSION
to control (override) the local version to consider against test safeguards. Allows development of future versions usingMAGPIE_TEST_VERSION=latest
.Add documentation about testing methodologies and setup configuration.
Bump version of
Twitcher
tov0.5.4
to provide Docker image with integratedMagpieAdapter
using performance fix (see PR bird-house/twitcher#98).
Bug Fixes¶
Fix inconsistent UI spacing of tabs for panel selector and employ mako function to avoid duplicated code fragments.
3.3.0 (2020-11-25)¶
Features / Changes¶
Add better details of HTTP error cause in returned UI page (resolves #369).
Ensure that general programming internal errors are not bubbled up in UI error page.
Add function to parse output body and redact potential leaks of flagged fields.
Align HTML format and structure of all edit forms portions of
Users
,Groups
andServices
UI pages to simplify and unify their rendering.Add inline UI error messages to
User
edition fields.Improve resolution of Twitcher URL using
TWITCHER_HOST
explicitly provided setting (or environment variable) before falling back to defaultHOSTNAME
value.Employ Pyramid’s local thread registry to resolve application settings if not explicitly provided to
magpie.constants.get_constant
, avoiding inconsistent resolution of setting value versus environment variable wherever the settings container was not passed down everywhere over deeply nested function calls.Handle Twitcher, PostgreSQL and Phoenix setting prefix conversion from corresponding environment variable names.
Store custom configuration of
Service
into database for same definition retrieval between Magpie and Twitcher without need to provide the same configuration file to both on startup.Update
Service
registration operations at startup to update entries if custom configuration was modified.Update API to allow POST and PATCH operations with
Service
custom configuration.Display custom
Service
configuration as JSON/YAML on its corresponding UI edit page when applicable.
3.2.1 (2020-11-17)¶
Bug Fixes¶
Fix incorrect flag that made some registration unittests to be skipped.
Fix parsing of JSON and explicit string formatted permissions during their registration from configuration files.
Update
config/permissions.cfg
documentation about omittedtype
field.
3.2.0 (2020-11-10)¶
Features / Changes¶
Add
catalog
specific pattern by default for metadataBROWSE
access of top-levelServiceTHREDDS
directory. This resolves an issue where THREDDS accessed as<PROXY_URL>/thredds/catalog.html
for listing the root directory attempted to comparecatalog.html
against the format-related prefix that is normally expected at this sub-path position (<PROXY_URL>/thredds/catalog/[...]/catalog.html
) during children resource listing.Added pattern support for
prefixes
entries ofServiceTHREDDS
.
Bug Fixes¶
Adjust visual alignment of UI notices on individual newlines when viewing user inherited permissions.
3.1.0 (2020-10-23)¶
Features / Changes¶
Add
BROWSE
permission forServiceTHREDDS
to parse request against metadata or data contents according to specified configuration of the specific service (resolves #361).Add documentation details about parsing methodologies, specific custom configurations and respective usage of the various
Service
types provided by Magpie.Adjust
MagpieAdapter
such thatOWSAccessForbidden
is raised by default if theService
implementation fails to provide a validPermission
enum frompermission_requested
method. Incorrectly definedService
will therefore not unexpectedly grant access to protected resources. Behaviour also aligns with defaultDENY
access obtained when resolving effective permissions through Magpie API routes.- Upgrade migration script is added to duplicate
BROWSE
permissions from existingREAD
permissions on everyServiceTHREDDS
and all their children resource to preserve previous functionality where both metadata and data access where both managed by the sameREAD
permission.WARNING:Downgrade migration drops everyBROWSE
permission that could exist in later versions. This is done like so to avoid granting additional access to someTHREDDS
directories or file if onlyBROWSE
was specified. When doing downgrade migration, ensure to haveREAD
where both metadata and data should be granted access.
Bug Fixes¶
Fix parsing of
ServiceAPI
routes during retrieval of the deepest availableResource
to ensure that even when the targetedResource
is actually missing, the closest parent permissions withScope.RECURSIVE
will still take effect. Same fix applied forServiceTHREDDS
for corresponding directory and file typedResource
.Propagate SSL verify option of generated service definition if provided to Twitcher obtained from
MagpieAdapter
.Adjust and validate parsing of
ServiceWPS
request usingPOST
XML body (fixes #157).
3.0.0 (2020-10-19)¶
Features / Changes¶
Adjust
alembic
migration scripts to employ date-ordered naming convention to help searching features within them.Add
DENY
permission access concept with newPermissionSet
object andAccess
enum (resolves #235).Remove
-match
suffixed entries fromPermission
enum in favor of newScope
enum employed by newPermissionSet
definition.Update permission entries to employ explicit string representation as
[name]-[access]-[scope]
in the database (resolves #342).Add
PermissionType
enum that details the type of permission being represented in any given response (values correspond to types detailed in documentation).Provide new
permissions
list in applicable API responses, with explicitname
,access
,scope
andtype
fields for eachPermissionSet
represented as individual JSON object. Responses will also return the explicit string representations (see above) combined with the older implicit representation still returned inpermission_names
field for backward compatibility (note:DENY
elements are only represented as explicit as there was no such implicit permissions before).Add more documentation details and examples about new permission concepts introduced.
Add
DELETE
request views withpermission
object provided in body to allow deletion usingPermissionSet
JSON representation instead of literal string by path variable. Still supportpermission_name
path variable requests for backward compatibility for equivalent names.Add
POST
request support ofpermission
JSON representation ofPermissionSet
provided in request body. Fallback topermission_name
field for backward compatibility if equivalentpermission
is not found.Add new
PUT
request that updates a possibly existingpermission
(or create it if missing) without needing to execute any priorGET
and/orDELETE
requests that would normally be required to validate the existence or not of previously definedpermission
to avoid HTTP Conflict onPOST
. This allows quicker changes ofaccess
andscope
modifiers applied on a givenpermission
with a single operation (see details in issue #342).Add many omitted tests regarding validation of operations on user/group service/resource permissions API routes.
Add functional tests that evaluate
MagpieAdapter
behaviour and access control of service/resource from resolution of effective permissions upon incoming requests as they would be received by Twitcher proxy.Add
Cache-Control: no-cache
header support during ACL resolution of effective permissions on service/resource to ignore any caching optimization provided bybeaker
.Add resource of type
Process
forServiceWPS
which can take advantage of new effective permission resolution method shared across service types to applyDescribeProcess
andExecute
permission on per-Process
basis (match
scope) or globally for all processes using permission on the parent WPS service (recursive
scope). (resolves #266).Modify all implementations of
Service
to support effective permission resolution to natively support new permissions modifiersAccess
andScope
.Adjust all API routes that provide
effective
query parameter to return resolved effective permissions of theUser
onto the targetedResource
, and this for all applicable permissions on thisResource
, using newAccess
permission modifier.Adjust UI pages to provide selector of
Access
andScope
modifiers for all available permission names.Change UI permission pages to Apply batch edition of multiple entries simultaneously instead of one at the time.
Improve rendering of UI disabled items such as inactive checkboxes or selectors when not applicable for given context.
Refactor UI tree renderer to reuse same code for both
User
andGroup
resource permissions.Add UI button on
User
edit page to test its effective permission on a given resource. Must be in inherited permissions display mode to have access to test button, in order to help understand the result.- Upgrade migration script is added to convert existing implicit names to new explicit permission names.WARNING:Downgrade migration drops any
DENY
permission that would be added in future versions, as they do not exist prior to this introduced version. The same applies forProcess
resources.
Bug Fixes¶
Fix incorrect regex employed for validation of service URL during registration.
Replace HTTP status code
400
by403
and422
where applicable for invalid resource creation due to failing validations against reference parent service (relates to #359).Fix UI rendering of
Push to Phoenix
notification when viewing service page with typeWPS
.Fix UI rendering of some incorrect title background color for alert notifications.
Fix UI rendering of tree view items with collapsible/expandable resource nodes.
2.0.0 (2020-07-31)¶
Features / Changes¶
Add
/ui
route redirect to frontpage when UI is enabled.Add
/json
route information into generated Swagger API documentation.Add tag description into generated Swagger API documentation.
Add more usage details to start Magpie web application in documentation.
Add database migration for new
discoverable
column of groups.Allow logged user to update its own information both via API and UI (relates to #170).
Allow logged user of any access-level to register by itself to
discoverable
groups.Change some UI CSS for certain pages to improve table readability.
Add UI page to render error details from API responses (instead of default server-side HTML error rendering).
Add
MAGPIE_UI_THEME
with new default blue theme and legacy green theme (with few improvements).Add more validation and inputs parameters to update
Group
information.Add UI input fields to allow administrator to update group description and group discoverability.
Allow combined configuration files (
providers
,permissions
,users
andgroups
sections) with resolution of inter-references between them. File can be specified withMAGPIE_CONFIG_PATH
environment variable ormagpie.config_path
setting (example inconfigs
).Add configurable
User
creation parameters upon Magpie application startup through configuration files (fixes #47 and #204).Add disabled checkboxes for UI rendering of non-editable items to avoid user doing operations that will always be blocked by corresponding API validation (relates to #164).
Add more tests to validate forbidden operations such as update or delete of reserved
User
andGroup
details.Add active version tag at bottom of UI pages (same version as returned by API
/version
route).Enforce configuration parameters
MAGPIE_SECRET
,MAGPIE_ADMIN_USER
andMAGPIE_ADMIN_PASSWORD
by explicitly defined values (either by environment variable or INI settings) to avoid using defaults for security purposes.Change CLI helper
create_users
tobatch_update_users
to better represent provided functionalities.Change CLI helper
register_default_users
toregister_defaults
to avoid confusion on groups also created.Extend CLI
batch_update_users
functionality with additional options and corresponding tests.Move all CLI helpers under
magpie.cli
and provide more details about them in documentation.Allow unspecified
group_name
during user creation request to employMAGPIE_ANONYMOUS_GROUP
by default (i.e.: created user will have no other apparent group membership since it is always attributed for public access).Change all
PUT
requests toPATCH
to better reflect their actual behaviour according to RESTful best practices (partial field updates instead of complete resource replacement and conflict responses on duplicate identifiers).Add support of
Accept
header andformat
query parameter for all API responses, for content-types variations in either plain text, HTML, XML or JSON (default), and include applicable values in schemas for Swagger generation.Add support of new response content-type as XML (must request using
Accept
header orformat
query parameter).Add documentation details about different types of
Permission
, interaction between various Magpie models, glossary and other general improvements (relates to #332 and #341).Add alternative response format for service and service-type paths using
flatten
query parameter to obtain a flat list of services instead of nested dictionaries (fixes #345).Change pre-existing
list
query parameter of user-scoped views toflatten
response format to match new query of service-scoped views.Add
filtered
query parameter for user-scoped resources permission listing when request user is an administrator.Obsolete all API routes using
inherited_permission
format (deprecated since0.7.4
) in favor of equivalentpermissions?inherited=true
query parameter modifier.Replace
inherit
query parameter wherever applicable byinherited
to match documentation names, but preserve backward compatibility support of old name.Add
MAGPIE_PASSWORD_MIN_LENGTH
setting with corresponding validation of field duringUser
creation and update.Avoid returning
Service
entries where user, group or both (according to request path and query options) does not actually have any permission set either directly on them or onto one of their respective childrenResource
. This avoids unnecessarily exposing allService
for which the user cannot (or should not) be interacting with anyway.Add
TWITCHER_HOST
as alternative configuration parameter to define the service public URL, to have a similar naming convention as other use cases covered byMAGPIE_HOST
andPHOENIX_HOST
.Modify
PHOENIX_PUSH
to be disabled by default to be consistent across all locations where corresponding feature is referenced (startup registration, CLI utility, API requests and UI checkbox option) and because this option is an advanced extension not to be considered as default behavior.Python 2.7 and Python 3.5 marked for deprecation (they remain in CI, but are not required to pass), as both reached their EOL as of January/September 2020.
Bug Fixes¶
Fix invalid API documentation of request body for
POST /users/{user_name}/groups
.Fix #164 (forbid special users and groups update and delete).
Fix #194 to render API error responses according to content-type.
Fix #337 documentation mismatch with previously denied request users since they are now allowed to run these requests with new user-scoped functionalities (#340).
Fix bug introduced in 0.9.4 (4a23a49) where some API routes would not return the Allowed Permissions for children
Resource
underService
(onlyService
permissions would be filled), or when requestingResource
details directly.Fix input check to avoid situations where updating
Resource
name could cause involuntary duplicate errors.Fix minor HTML issues in mako templates.
Fix invalid generation of default
postgres.env
file frommagpie.env.example
. Filepostgres.env.example
will now be correctly employed as documented.Make environment variable
PHOENIX_PUSH
refer tophoenix.push
instead ofmagpie.phoenix_push
to employ same naming schema as all other variables.
1.11.0 (2020-06-19)¶
Features / Changes¶
Update this changelog to provide direct URL references to issues and tags from both GitHub and Readthedocs.
Add generic
magpie_helper
CLI and prefix others usingmagpie_
to help finding them in environment.Add minimal tests for CLI helpers to validate they can be found and called as intended (#74).
Add
CLI
tag for running specific tests related to helpers.
Bug Fixes¶
Remove some files from built docker image that shouldn’t be there with more explicit
COPY
operations.Fix
Dockerfile
dependency ofpython3-dev
causing build to fail.
1.10.2 (2020-04-21)¶
Features / Changes¶
Add more documentation detail and references to existing Magpie utilities.
Add
readthedocs
API page auto-generated from latest schemas extracted from source (redoc rendering of OpenAPI).Combine and update requirements for various python versions. Update setup parsing to support
python_version
.Slack some requirements to obtain patches and bug fixes. Limit only when needed.
1.10.1 (2020-04-02)¶
Bug Fixes¶
Fix failing generation of children resource tree when calling routes
/resources/{id}
due to literalResource
class being used instead of the string representation. This also fixes UI Edit menu of aService
that add more at least one childResource
.
1.10.0 (2020-03-18)¶
Features / Changes¶
When using logging level
DEBUG
, Magpie requests will log additional details.WARNING: these log entries will potentially also include sensible information such as authentication cookies.
Bug Fixes¶
Adjust mismatching log levels across Magpie packages in case
MAGPIE_LOG_LEVEL
and correspondingmagpie.log_level
setting orlogger_magpie
configuration section were defined simultaneously. The values are back-propagated tomagpie.constants
for matching values and prioritize the INI file definitions.
1.9.3 (2020-03-10)¶
Bug Fixes¶
Add handling of
Accept
header to allow additional content-type when requesting UI related routes while Magpie application is being served under a route with additional prefix.Fix requirements dependency issue related to
zope.interface
andsetuptools
version mismatch.
1.9.2 (2020-03-09)¶
Features / Changes¶
Remove
MAGPIE_ALEMBIC_INI_FILE_PATH
configuration parameter in favor ofMAGPIE_INI_FILE_PATH
.Forward
.ini
file provided as argument toMAGPIE_INI_FILE_PATH
(e.g.: when usinggunicorn --paste <ini>
).Load configuration file (previously only
.cfg
) also using.yml
,.yaml
and.json
extensions.Add argument parameter for
run_db_migration
helper to specify the configurationini
file to employ.
Bug Fixes¶
Use forwarded input argument to
MAGPIE_INI_FILE_PATH
to execute database migration.Handle trailing
/
of HTTP path that would fail an ACL lookup of the corresponding service or resource.
1.9.1 (2020-02-20)¶
Features / Changes¶
Update adapter docker image reference to
birdhouse/twitcher:v0.5.3
.
1.9.0 (2020-01-29)¶
Features / Changes¶
Change database user name setting to lookup for
MAGPIE_POSTGRES_USERNAME
(and corresponding INI file setting) instead of previously employedMAGPIE_POSTGRES_USER
, but leave backward support if old parameter if not resolved by the new one.Add support of variables not prefixed by
MAGPIE_
forpostgres
database connection parameters, as well as all their correspondingpostgres.<param>
definitions in the INI file.
1.8.0 (2020-01-10)¶
Features / Changes¶
Add
MAGPIE_DB_URL
configuration parameter to define a database connection with full URL instead of individual parts (notablyMAGPIE_POSTGRES_<>
variables).Add
bandit
security code analysis and apply some detected issues (#168).Add more code linting checks using various test tools.
Add smoke test of built docker image to Travis-CI pipeline.
Bump
alembic>=1.3.0
to remove old warnings and receive recent fixes.Move
magpie.utils.SingletonMeta
functionality from adapter to reuse it innull
test checks.Rename
resource_tree_service
andremote_resource_tree_service
to their uppercase equivalents.Removed module
magpie.definitions
in favor of directly importing appropriate references as needed.Improve
make help
targets descriptions.Change to Apache license.
Bug Fixes¶
Fix incorrectly installed
authomatic
library following update of reference branch (https://github.com/fmigneault/authomatic/tree/httplib-port) withmaster
branch merged update (https://github.com/authomatic/authomatic/pull/195/commits/d7897c5c4c20486b55cb2c70724fa390c9aa7de6).Fix documentation links incorrectly generated for readthedocs pages.
Fix missing or incomplete configuration documentation details.
Fix many linting issues detected by integrated tools.
1.7.4 (2019-12-03)¶
Features / Changes¶
Add sorting by name of configuration files (permissions/providers) when loaded from a containing directory path.
Add readthedocs references to README.
1.7.3 (2019-11-20)¶
Bug Fixes¶
Fix 500 error when getting user’s services on
/users/{user_name}/services
.
1.7.2 (2019-11-15)¶
Bug Fixes¶
Fix
gunicorn>=20.0.0
breaking change not compatible with alpine: pingunicorn==19.9.0
.
1.7.1 (2019-11-12)¶
Bug Fixes¶
Fix resource sync process and update cron job running it (#226).
Fix configuration files not loaded from directory by application due to more restrictive file check.
Fix a test validating applicable user resources and permissions that could fail if anonymous permissions where generated into the referenced database connection (eg: from loading a
permissions.cfg
or manually created ones).
1.7.0 (2019-11-04)¶
Features / Changes¶
Add
docs/configuration.rst
file that details all configuration settings that are employed byMagpie
(#180).Add more details about basic usage of Magpie in
docs/usage.rst
.Add details about external provider setup in
docs/configuration
(#173).Add specific exception classes for
register
sub-package operations.Add
PHOENIX_HOST
variable to override defaultHOSTNAME
as needed.Add support of
MAGPIE_PROVIDERS_CONFIG_PATH
andMAGPIE_PERMISSIONS_CONFIG_PATH
pointing to a directory to load multiple similar configuration files contained in it.Add environment variable expansion support for all fields within
providers.cfg
andpermissions.cfg
files.
1.6.2 (2019-10-04)¶
Bug Fixes¶
Fix a bug in
ows_parser_factory
that caused query parameters for wps services to be case sensitive.
1.6.0 (2019-09-20)¶
Features / Changes¶
Add an utility script
create_users
for quickly creating multiple users from a list of email addresses (#219).Add PEP8 auto-fix make target
lint-fix
that will correct any PEP8 and docstring problem to expected format.Add auto-doc of make target
help
message.Add ACL caching option and documentation (#218).
1.5.0 (2019-09-09)¶
Features / Changes¶
Use singleton interface for
MagpieAdapter
andMagpieServiceStore
to avoid class recreation and reduce request time by Twitcher when checking for a service by name.
1.4.0 (2019-08-28)¶
Features / Changes¶
Apply
MAGPIE_ANONYMOUS_GROUP
to every new user to ensure they can access public resources when they are logged in and that they don’t have the same resource permission explicitly set for them.
Bug Fixes¶
Fix migration script hastily removing anonymous group permissions without handling and transferring them accordingly.
Use settings during default user creation instead of relying only on environment variables, to reflect runtime usage.
1.3.3 (2019-07-11)¶
Features / Changes¶
Update
MagpieAdapter
to use Twitcher version0.5.2
to employ HTTP status code fixes and additional API route details : - https://github.com/bird-house/twitcher/pull/79 - https://github.com/bird-house/twitcher/pull/84
1.3.0 (2019-07-02)¶
Features / Changes¶
Move
get_user
function used specifically for Twitcher viaMagpieAdapter
where it is employed.Remove obsolete, unused and less secure code that converted a token to a matching user by ID.
Avoid overriding a logger level specified by configuration by checking for
NOTSET
beforehand.Add debug logging of Authentication Policy employed within
MagpieAdapter
.Add debug logging of Authentication Policy at config time for both Twitcher and Magpie.
Add debug logging of Cookie identification within
MagpieAdapter
.Add route
/verify
withPOST
request to verify matching Authentication Policy tokens retrieved between Magpie and Twitcher (viaMagpieAdapter
).
Bug Fixes¶
Fix
MagpieAdapter
name incorrectly called when displayed using route/info
from Twitcher.
1.2.0 (2019-06-27)¶
Features / Changes¶
Provide some documentation about
magpie.constants
module behaviour.Remove some inspection comments by using combined requirements files.
Add constant
MAGPIE_LOG_PRINT
(default:False
) to enforce printing logs to console (equivalent to specifying asys.stdout/stderr StreamHandler
inmagpie.ini
, but is not enforced anymore).Update logging config to avoid duplicate outputs and adjust code to respect specified config.
Add some typing for ACL methods.
1.1.0 (2019-05-28)¶
Features / Changes¶
Prioritize settings (ie:
magpie.ini
values) before environment variables andmagpie.constants
globals.Allow specifying
magpie.scheme
setting to generate themagpie.url
with it if the later was omitted.Look in settings for required parameters for function
get_admin_cookies
.Use API definitions instead of literal strings for routes employed in
MagpieAdapter
.
Bug Fixes¶
Fix erroneous
Content-Type
header retrieved from form submission getting forwarded to API requests.Fix user name update failing because of incomplete db transaction.
1.0.0 (2019-05-24)¶
Features / Changes¶
Add
Dockerfile.adapter
to build and configureMagpieAdapter
on top ofTwitcher >= 0.5.0
.Add auto-bump of history version.
Update history with more specific sections.
Improve
Makefile
targets with more checks and re-using variables.Add constant alternative search of variant
magpie.[variable_name]
forMAGPIE_[VARIABLE_NAME]
.Add tests for
get_constant
function.Regroup all configurations in a common file located in
config/magpie.ini
.Remove all other configuration files (
tox.ini
,alembic.ini
,logging.ini
).Drop Makefile target
test-tox
.
Bug Fixes¶
Use an already created configurator when calling
MagpieAdapter.configurator_factory
instead of recreating it from settings to preserve potential previous setup and includes.Use default
WPSGet
/WPSPost
formagpie.owsrequest.OWSParser
when noContent-Type
header is specified (JSONParser
was used by default since missingContent-Type
was resolved toapplication/json
, which resulted in incorrect parsing of WPS requests parameters).Actually fetch required JSON parameter from the request body if
Content-Type
isapplication/json
.Convert
Permission
enum to string for proper ACL comparison inMagpieOWSSecurity
.Fix
raise_log
function to allow proper evaluation againstException
type instead ofmessage
property.
0.10.0 (2019-04-15)¶
Features / Changes¶
Refactoring of literal strings to corresponding
Permission
enum (#167).Change all incorrect usages of
HTTPNotAcceptable [406]
toHTTPBadRequest [400]
(#163).Add
Accept
header type checking before requests and returnHTTPNotAcceptable [406]
if invalid.Code formatting changes for consistency and cleanup of redundant/misguiding names (#162).
Add option
MAGPIE_UI_ENABLED
allowing to completely disable all/ui
route (enabled by default).Add more unittests (#74).
0.9.6 (2019-03-28)¶
Features / Changes¶
Update Travis-CI test suite execution by enabling directly running PEP8 lint checks.
Change some PyCharm specific inspection comment in favor of IDE independent
noqa
equivalents.
0.9.5 (2019-02-28)¶
Features / Changes¶
Logging requests and exceptions according to MAGPIE_LOG_REQUEST and MAGPIE_LOG_EXCEPTION values.
Better handling of
HTTPUnauthorized [401]
andHTTPForbidden [403]
according to unauthorized view (invalid access token/headers or forbidden operation under view).Better handling of
HTTPNotFound [404]
andHTTPMethodNotAllowed [405]
on invalid routes and request methods.Adjust
Dockerfile
copy order to save time if requirements did not change.
0.9.4 (2019-02-19)¶
Features / Changes¶
Address YAML security issue using updated package distribution.
Improve permission warning details in case of error when parsing.
Add multiple tests for item registration via API.
Minor changes to some variable naming to respect convention across the source code.
Bug Fixes¶
Use sub-transaction when running service update as a session can already be in effect with a transaction due to previous steps employed to fetch service details and/or UI display.
0.9.3 (2019-02-18)¶
Features / Changes¶
Greatly reduce docker image size using
Alpine
base and redefining its creation steps.Use
get_constant
function to allow better retrieval of database related configuration from all setting variations.Simplify database creation using
sqlalchemy_utils
.
0.9.2 (2019-02-15)¶
Features / Changes¶
Allow quick functional testing using sequences of local app form submissions.
Add test methods for UI redirects to other views from button click in displayed page.
Change resource response for generic
resource: {<info>}
instead of{resource-id}: {<info>}
.Add more typing hints of headers and cookies parameters to functions.
Improve handling of invalid request input parameter causing parsing errors using
error_badrequest
decorator.
Bug Fixes¶
Fix UI add child button broken by introduced
int
resource id type checking.
0.9.1 (2019-02-14)¶
Features / Changes¶
Reduce docker image build time by skipping irrelevant files causing long context loading using
.dockerignore
.Use sub-requests API call for UI operations (fixes issue #114).
Add new route
/services/types
to obtain a list of available service types.Add
resource_child_allowed
andresource_types_allowed
fields in service response.Change service response for generic
service: {<info>}
instead of{service-name}: {<info>}
.Add new route
/services/types/{svc_type}/resources
for details about child service type resources.Add error handling of reserved route keywords service
types
for/services/{svc}
routes and current user defined byMAGPIE_LOGGED_USER
for/users/{usr}
routes.Additional tests for new routes and operations previously left unevaluated.
0.9.0 (2019-02-01)¶
Features / Changes¶
Add permissions config to auto-generate user/group rules on startup.
Attempt db creation on first migration if not existing.
Add continuous integration testing and deployment (with python 2/3 tests).
Ensure python compatibility for Python 2.7, 3.5, 3.6 (via Travis-CI).
Reduce excessive
sqlalchemy
logging usingMAGPIE_LOG_LEVEL >= INFO
.Use schema API route definitions for UI calls.
Bug Fixes¶
Fix invalid conflict service name check on service update request.
Fix many invalid or erroneous swagger specifications.
0.8.0 (2018-12-18)¶
Features / Changes¶
Adjust typing of
MagpieAdapter
.Reuse store objects in
MagpieAdapter
to avoid recreation on each request.Add
HTTPNotImplemented [501]
error in case of incorrect adapter configuration.
0.7.12 (2018-12-06)¶
Features / Changes¶
Add flag to return effective permissions from user resource permissions requests.
0.7.11 (2018-12-03)¶
Features / Changes¶
Allow more processes to be returned by an administrator user when parsing items in
MagpieAdapter.MagpieProcess
.
0.7.10 (2018-11-30)¶
Features / Changes¶
Updates to
MagpieAdapter.MagpieProcess
according to process visibility.
0.7.9 (2018-11-20)¶
Features / Changes¶
Add
isTrue
andisFalse
options toapi_except.verify_param
utility function.Add better detail and error code for login failure instead of generic failure.
Use
UserService
for some user operations that were still using the old method.Add multiple tests for
/users/[...]
related routes.
Bug Fixes¶
Fixes to JSON body to be returned by some
MagpieAdapter.MagpieProcess
operations.
0.7.8 (2018-11-16)¶
Features / Changes¶
Hide service private URL on non administrator level requests.
Make cookies expire-able by setting
MAGPIE_COOKIE_EXPIRE
and provide cookie only on http (JS CSRF attack protection).Update
MagpieAdapter.MagpieOWSSecurity
for WSO2 seamless integration with Authentication header token.Update
MagpieAdapter.MagpieProcess
for automatic handling of REST-API WPS process route access permissions.Update
MagpieAdapter.MagpieService
accordingly to inherited resources and service URL changes.
Bug Fixes¶
Fixes related to postgres DB entry conflicting inserts and validations.
0.7.7 (2018-11-06)¶
Features / Changes¶
Add error handing during user permission creation in
MagpieAdapter.MagpieProcess
.
0.7.6 (n/a)¶
Invalid version skipped due to generation error.
0.7.5 (2018-11-05)¶
Bug Fixes¶
Fix handling of resource type in case the resource ID refers to a
service
.Pin
pyramid_tm==2.2.1
.
0.7.4 (2018-11-01)¶
Features / Changes¶
Add inherited resource permission with querystring (deprecate
inherited_<>
routes warnings).
0.7.3 (2018-10-26)¶
Features / Changes¶
Improve
MagpieAdapter
logging.Add
MagpieAdapter
initialization with parent object initialization and configuration.
0.7.2 (2018-10-19)¶
Features / Changes¶
Add
MagpieAdapter.MagpieOWSSecurity.update_request_cookies
method that handles conversion ofAuthorization
header into the required authentication cookie employed by Magpie and Twitcher via integratedMagpieAdapter
.Add multiple cosmetic improvements to UI (images, styles, etc.).
Improve login error reporting in UI.
Improve reporting of invalid parameters on creation UI pages.
Add better display of the logged user if any in the UI.
Add more Swagger API documentation details for returned resources per HTTP status codes.
Add external provider type
WSO2
and relevant setting variables to configure the referenced instance.
Bug Fixes¶
Fix external providers login support with
authomatic
using API/UI (validated for DKRZ, GitHub and WSO2).Fix login/logout button in UI.
0.7.1 (2018-10-16)¶
Features / Changes¶
Avoid displaying the private service URL when not permitted for the current user.
Add more test and documentation updates.
0.7.0 (2018-10-05)¶
Features / Changes¶
Add service resource auto-sync feature.
Return user/group services if any sub-resource has permissions.
0.6.5 (2018-09-13)¶
Bug Fixes¶
Fix
MagpieAdapter
setup usingTWITCHER_PROTECTED_URL
setting.Fix
MagpieAdapter.MagpieService
handling of returned list of services.Fix Swagger JSON path retrieval for some edge case configuration values.
0.6.2 - 0.6.3 (n/a)¶
Invalid versions skipped due to generation error.
0.6.1 (2018-06-29)¶
Features / Changes¶
Update
Makefile
targets.Change how
postgres
configurations are retrieved using variables specific to Magpie.
Bug Fixes¶
Properly return values of field
permission_names
under/services/.*
routes.
0.6.0 (2018-06-26)¶
Features / Changes¶
Add
/magpie/api/
route to locally display the Magpie REST API documentation.Move many source files around to regroup by API/UI functionality.
Auto-generation of swagger REST API documentation using
cornice_swagger
.Add more unit tests.
Validation of permitted resource types children under specific parent service or resource.
ServiceAPI
to filterread
/write
of specific HTTP methods on route parts.ServiceAccess
to filter top-level routeaccess
permission of a generic service URL.
0.5.4 (2018-06-08)¶
Features / Changes¶
Improve some routes returned codes, inputs check, and requests formats (JSON).
0.5.3 (2018-06-07)¶
Features / Changes¶
Add utility functions like
get_multiformat_any
to help retrieving contents regardless of request method and/or content-type.
0.5.2 (2018-06-06)¶
Bug Fixes¶
Fix returned inherited group permissions of a user.
Fix clearing of cookies when logout is accomplished.
0.5.1 (2018-06-06)¶
Features / Changes¶
Independent user/group permissions, no more ‘personal’ group to reflect user permissions.
Service specific resources with service*-typed* Resource permissions.
More verification of resources permissions under specific services.
Reference to root service from each sub-resource.
0.5.0 (2018-06-06)¶
Features / Changes¶
Change defaults for
ADMIN_GROUP
andUSER_GROUP
variables.Major refactoring of
Magpie
application, both for API and UI.Split utilities and view functions into corresponding files for each type of item.
Add more
alembic
database migration scripts steps for missing incremental versioning of schema and data.Inheritance of user and group permissions with different routes.
0.4.5 (2018-05-14)¶
Features / Changes¶
Handle login failure into different use cases in order to return appropriate HTTP status code and message.
Add login error reporting with a banner in UI.
0.4.4 (2018-05-11)¶
Features / Changes¶
Add UI view for user detail edition, including personal information and group membership.
0.4.2 (2018-05-09)¶
Features / Changes¶
Loosen
PyYAML
version requirement.Update documentation details.
0.4.1 (2018-05-08)¶
Features / Changes¶
Improvement to UI element rendering with focus/hover/etc.
Push to Phoenix adjustments and new push button option and alert/confirmation banner.
0.4.0 (2018-03-23)¶
Features / Changes¶
Default admin permissions.
Block UI view permissions of all pages if not logged in.
0.3.x¶
Features / Changes¶
Add ncWMS support for getmap, getcapabilities, getmetadata on
thredds
resource.Add ncWMS2 to default providers.
Add geoserverwms service.
Remove load balanced Malleefowl and Catalog.
Push service provider updates to Phoenix on service edit or initial setup with getcapabilities for anonymous.
Major update of Magpie REST API 0.2.x documentation to match returned codes/messages from 0.2.0 changes.
Normalise additional HTTP request responses omitted from 0.2.0 (404, 500, and other missed responses).
Remove internal api call, separate login external from local, direct access to ziggurat login.
Bug Fixes¶
Fix UI
"Magpie Administration"
to redirect toward home page instead of PAVICS platform.Fix bug during user creation against preemptive checks.
Fix issues from 0.2.x versions.
0.2.0¶
Features / Changes¶
Revamp HTTP standard error output format, messages, values and general error/exception handling.
Update Magpie REST API 0.2.0 documentation.
0.1.0¶
First structured release.