Strawberry-graphql

Latest version: v0.229.1

Safety actively analyzes 629811 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 8 of 119

0.217.1

--------------------

This hotfix enables permission extensions to be used with AsyncGenerators.

Contributed by [Erik Wrede](https://github.com/erikwrede) via [PR #3318](https://github.com/strawberry-graphql/strawberry/pull/3318/)

0.217.0

--------------------

Permissions classes now use a `FieldExtension`. The new preferred way to add permissions
is to use the `PermissionsExtension` class:

python
import strawberry
from strawberry.permission import PermissionExtension, BasePermission


class IsAuthorized(BasePermission):
message = "User is not authorized"
error_extensions = {"code": "UNAUTHORIZED"}

def has_permission(self, source, info, **kwargs) -> bool:
return False


strawberry.type
class Query:
strawberry.field(extensions=[PermissionExtension(permissions=[IsAuthorized()])])
def name(self) -> str:
return "ABC"


The old way of adding permissions using `permission_classes` is still
supported via the automatic addition of a `PermissionExtension` on the field.

⚠️ Breaking changes

Previously the `kwargs` argument keys for the `has_permission` method were
using camel casing (depending on your schema configuration), now they will
always follow the python name defined in your resolvers.

python
class IsAuthorized(BasePermission):
message = "User is not authorized"

def has_permission(
self, source, info, **kwargs: typing.Any
) -> bool: pragma: no cover
kwargs will have a key called "a_key"
instead of `aKey`

return False


strawberry.type
class Query:
strawberry.field(permission_classes=[IsAuthorized])
def name(self, a_key: str) -> str: pragma: no cover
return "Erik"


Using the new `PermissionExtension` API, permissions support even more features:

Silent errors

To return `None` or `[]` instead of raising an error, the `fail_silently ` keyword
argument on `PermissionExtension` can be set to `True`.

Custom Error Extensions & classes

Permissions will now automatically add pre-defined error extensions to the error, and
can use a custom `GraphQLError` class. This can be configured by modifying
the `error_class` and `error_extensions` attributes on the `BasePermission` class.

Customizable Error Handling

To customize the error handling, the `on_unauthorized` method on
the `BasePermission` class can be used. Further changes can be implemented by
subclassing the `PermissionExtension` class.

Schema Directives

Permissions will automatically be added as schema directives to the schema. This
behavior can be altered by setting the `add_directives` to `False`
on `PermissionExtension`, or by setting the `_schema_directive` class attribute of the
permission to a custom directive.

Contributed by [Erik Wrede](https://github.com/erikwrede) via [PR #2570](https://github.com/strawberry-graphql/strawberry/pull/2570/)

0.216.1

--------------------

Don't require `NodeId` annotation if resolve_id is overwritten on `Node` implemented types

Contributed by [Alexander](https://github.com/devkral) via [PR #2844](https://github.com/strawberry-graphql/strawberry/pull/2844/)

0.216.0

--------------------

Override encode_json() method in Django BaseView to use DjangoJSONEncoder

Contributed by [Noam Stolero](https://github.com/noamsto) via [PR #3273](https://github.com/strawberry-graphql/strawberry/pull/3273/)

0.215.3

--------------------

Fixed the base view so it uses `parse_json` when loading parameters from the query string instead of `json.loads`.

Contributed by [Elias Gabriel](https://github.com/thearchitector) via [PR #3272](https://github.com/strawberry-graphql/strawberry/pull/3272/)

0.215.2

--------------------

This release updates the Apollo Sandbox integration to all you to
pass cookies to the GraphQL endpoint by enabling the **Include cookes**
option in the Sandbox settings.

Contributed by [Patrick Arminio](https://github.com/patrick91) via [PR #3278](https://github.com/strawberry-graphql/strawberry/pull/3278/)

Page 8 of 119

Links

Releases

Has known vulnerabilities

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.