profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/vdboor/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Diederik van der Boor vdboor Edoburu The Netherlands http://www.edoburu.nl/ Django developer, freelancer. @django-fluent, @django-polymorphic, @django-parler, @edoburu

django-polymorphic/django-polymorphic 1212

Improved Django model inheritance with automatic downcasting

HonzaKral/django-threadedcomments 602

django-threadedcomments is a simple yet flexible threaded commenting system for Django.

pydanny/django-wysiwyg 469

A Django application for making Django textareas rich text editors. Certainly as a template tag and possibly as a form widget.

Amsterdam/django-gisserver 15

Django speaking WFS 2.0 to expose geo data

vdboor/django-any-htmlfield 3

(a proposal) a A WYSIWYG HTML editor field for Django, allowing to select between WYSIWYG editors easily (for example CKEditor or TinyMCE).

vdboor/django-fiber 2

Django Fiber - a simple, user-friendly CMS for all your Django projects

vdboor/django-form-designer 2

Design forms in the admin - forked to contribute fixes.

vdboor/bootstrap-datepicker 1

A datepicker for @twitter bootstrap - forked to contribute a IE7/8 fix

vdboor/dashboardmods 1

Dashboard modules for Memcache statistics, Varnish statistics - forked to contribute Varnish fixes.

vdboor/django-filebrowser-no-grappelli 1

Media-Management no Grappelli

push eventAmsterdam/dso-api

Diederik van der Boor

commit sha 3bfdf40a88332ad8926fd1247b38199a59a28c56

Fix DSO-API unittests to handle fixed JSON field ordering in schematools

view details

push time in 3 days

create barnchAmsterdam/dso-api

branch : diederik/fix-dso-latest-schematools

created branch time in 3 days

push eventdjango-fluent/django-fluent.org

Diederik van der Boor

commit sha e4dba3cd43d07ac3932716eb64d2579a36751f37

Patch jquery fix

view details

Diederik van der Boor

commit sha a79b92af7243b233829abda877cd474962df7d42

Change deployment to new 1.20 Kubernetes cluster

view details

Diederik van der Boor

commit sha 7f7385544334e07b08ae018447788f285638488d

Switch to Python 3.8

view details

Diederik van der Boor

commit sha 169aa75167245f97b5c31b158a4a9d8e1a2eaa9e

Change deployment to new 1.20 Kubernetes cluster

view details

Diederik van der Boor

commit sha edcef8ccce790a9c8fc10506d147193603ad1b5d

Switch to Python 3.8

view details

Diederik van der Boor

commit sha 12cd98f3bd21f2520d2ec02f95dc1fffc0e55d2d

Bump Python requirements

view details

Diederik van der Boor

commit sha f03f753a3fe1dcd38ac4073461fe98dc949db8a5

Skaffold: avoid -dirty

view details

Diederik van der Boor

commit sha 2c2ce15cb1cd153b4fa628136bc1a4f89d03d452

Bump to Django 3 instead

view details

push time in 4 days

push eventdjango-fluent/django-fluent.org

Diederik van der Boor

commit sha 2c2ce15cb1cd153b4fa628136bc1a4f89d03d452

Bump to Django 3 instead

view details

push time in 4 days

created tagdjango-fluent/django-fluent.org

tagv1.17.1

Code of django-fluent.org, also serving as example how to build django-fluent sites.

created time in 4 days

created tagdjango-fluent/django-fluent.org

tagv1.17

Code of django-fluent.org, also serving as example how to build django-fluent sites.

created time in 4 days

push eventdjango-fluent/django-fluent.org

Diederik van der Boor

commit sha 169aa75167245f97b5c31b158a4a9d8e1a2eaa9e

Change deployment to new 1.20 Kubernetes cluster

view details

Diederik van der Boor

commit sha edcef8ccce790a9c8fc10506d147193603ad1b5d

Switch to Python 3.8

view details

Diederik van der Boor

commit sha 12cd98f3bd21f2520d2ec02f95dc1fffc0e55d2d

Bump Python requirements

view details

Diederik van der Boor

commit sha f03f753a3fe1dcd38ac4073461fe98dc949db8a5

Skaffold: avoid -dirty

view details

push time in 4 days

push eventdjango-fluent/django-fluent.org

Diederik van der Boor

commit sha e4dba3cd43d07ac3932716eb64d2579a36751f37

Patch jquery fix

view details

Diederik van der Boor

commit sha a79b92af7243b233829abda877cd474962df7d42

Change deployment to new 1.20 Kubernetes cluster

view details

Diederik van der Boor

commit sha 7f7385544334e07b08ae018447788f285638488d

Switch to Python 3.8

view details

push time in 4 days

create barnchAmsterdam/dso-api

branch : diederik/less-api-text

created branch time in 4 days

push eventdjango-fluent/demo.django-fluent.org

Diederik van der Boor

commit sha 839963fe47e3c98aa9f9300d1e37d72cfd185ae9

Upgrade ingress to Kubernetes 1.20

view details

Diederik van der Boor

commit sha 339ce475301313020498476876289145d3166d15

Fix python-akismet version for deployment

view details

Diederik van der Boor

commit sha 85445e1e9d9248f680f21345ee1f87f70fa64959

Added skaffold for quick deployment

view details

push time in 4 days

push eventAmsterdam/schema-tools

Diederik van der Boor

commit sha 304a737700b8884c706824e768f3198d7f07ccf6

Fix ProfileSchema.schema call to expect text data instead of JSON Amends: 330603b0c3eb52fb61f79da3bc7812748a18b6b6

view details

push time in 4 days

Pull request review commentAmsterdam/schema-tools

[AB#6554] Decouple UserScopes from is_authorized_for

 def _may_include_profile_table(self, profile_table: ProfileTableSchema):             _match_filter_rule(rule, self._query_param_names) for rule in mandatory_filtersets         ) +    def __str__(self) -> str:+        """str implementation, for debugging purposes."""+        self._materialize_profiles()

deze call is hier toch niet nodig?

lbam

comment created time in 5 days

PullRequestReviewEvent
PullRequestReviewEvent

Pull request review commentAmsterdam/dso-api

Use new UserScopes object with explicit scopes

 def api_rf() -> APIRequestFactory:   @pytest.fixture()-def api_request(api_rf) -> WSGIRequest:+def api_request_with_scopes(api_rf) -> Callable:

Ik vraag me een beetje af of dit nog wel een fixture moet zijn... Het lijkt teveel op een util functie

lbam

comment created time in 5 days

Pull request review commentAmsterdam/dso-api

Use new UserScopes object with explicit scopes

 def __init__(self, get_response):      def process_request(self, request):         # This also installs the `user_scopes` for the OAS views.-        request.user_scopes = UserScopes(request.GET, request.is_authorized_for, self.all_profiles)++        # get_token_scopes should be set by authorization_django. We use it,+        # instead of is_authorized_for, to get more control over authorization+        # checks and to enable more precise logging.+        if hasattr(request, "get_token_scopes"):+            # get_token_scopes is a data attribute, not a method.+            scopes = request.get_token_scopes+        else:+            scopes = set()

Waarom niet verplichten dat deze er gewoon is? Het ontbreken ervan betekend toch een configuratiefout in onze app.

lbam

comment created time in 5 days

PullRequestReviewEvent

push eventAmsterdam/schema-tools

Diederik van der Boor

commit sha af69347d6e1538839e80463f43895170846b6a4d

Add __repr__() to Dataset class for easier debugging

view details

Diederik van der Boor

commit sha 5681ca73e0db52eeb4c9065b46332937dc603046

Convert DatasetTable.fields into a list for easier debugging The data also is read multiple times on many occasions, so it improves performance too.

view details

Diederik van der Boor

commit sha 981c03292dba9f015b975859d1ade9fabdf356a3

Fix ordering of fields in the Django schema objects. The schema_data is converted from JSON field back to TEXT field. While the Python code guarantees the ordering of dicts, PostgreSQL does not. The JSONB field orders the keys for efficient querying. This also fixes the field ordering the API.

view details

Diederik van der Boor

commit sha 330603b0c3eb52fb61f79da3bc7812748a18b6b6

Convert Profile.schema_data to TextField as well.

view details

Diederik van der Boor

commit sha 859e99f0fe39b4663b38372ae434388181e2b6bb

Fix manage.py import_profiles <file>

view details

push time in 5 days

PR merged Amsterdam/schema-tools

Fix field ordering in amsterdam schema

This also fixes the field ordering in the API. JSONField is converted back to TextField Needs an import_schemas to update the contents of the database after deployment.

+81 -23

0 comment

6 changed files

vdboor

pr closed time in 5 days

push eventAmsterdam/schema-tools

Diederik van der Boor

commit sha 0b9178b18649f566a39c0141c25dc6553a475729

Convert Profile.schema_data to TextField as well.

view details

Diederik van der Boor

commit sha aa104a31fcc46bddd1ca96f39db6995aeb0cc94b

Fix manage.py import_profiles <file>

view details

push time in 5 days

push eventAmsterdam/schema-tools

Diederik van der Boor

commit sha d2009cc405f39ed1ebb535b2857d5cad7df1e185

Fix ordering of fields in the Django schema objects. The schema_data is converted from JSON field back to TEXT field. While the Python code guarantees the ordering of dicts, PostgreSQL does not. The JSONB field orders the keys for efficient querying. This also fixes the field ordering the API.

view details

push time in 5 days

PR opened Amsterdam/schema-tools

Fix field ordering in amsterdam schema

This also fixes the field ordering in the API. Needs an import_schemas to update the contents of the database after deployment.

+12 -3

0 comment

1 changed file

pr created time in 5 days

create barnchAmsterdam/schema-tools

branch : diederik/fix-field-ordering

created branch time in 5 days

push eventAmsterdam/schema-tools

Diederik van der Boor

commit sha c9ded3ed34541a87e863de092fea27409dcc1d6e

Fix flake8 errors for unused import

view details

push time in 5 days

push eventAmsterdam/schema-tools

Diederik van der Boor

commit sha 7706e40268c95b1ba26a1fda484e50aed351bbf2

Profiles: require ALL scopes, not just one

view details

Diederik van der Boor

commit sha a2d383b298088f0538eaaafa8d697eadf62dea15

Fix flake8 errors for docstrings of auth refactor code.

view details

push time in 5 days

pull request commentAmsterdam/schema-tools

[AB#6554] Decouple UserScopes from is_authorized_for

Fine by me. Note this does mean we also no longer support the middleware settings in authorization_django (ALWAYS_OK and FORCED_ANONYMOUS_ROUTES) but I doubt we'd use them anyway..

lbam

comment created time in 6 days

pull request commentAmsterdam/dataservices-airflow

[Dependabot] ignore Flask-Caching vulnerability for now.

Ik zou deze overweging nog wel in de file opnemen. Dan is het meteen duidelijk waarom zoiets er staat of wanneer het weer weg kan

gkoller

comment created time in 10 days

pull request commentAmsterdam/dso-api

docs: update documentation on auth

Looks like I hit the button that marks review comments as "pending" instead of just posting them. Sorry about that.

no problem, fixed in dac3902b03cdf11fef079c3c589a07b0960972b5.

vdboor

comment created time in 12 days

Pull request review commentAmsterdam/dso-api

docs: update documentation on auth

 gain permission to read the field ``bsn`` on the table ``ingeschrevenpersonen``, provided that the request queries for either ``bsn`` and ``lastname``, or ``postcode`` and ``lastname`` (or all three fields). -The intention behind ``mandatoryFilterSets`` is to ensure-that listings are restricted on a need-to-know basis.-For example, a profile might express that a frontend office employee-may only access data of someone when they can provide their last name and postal code.-Or a statistician might be allowed to read age and neighbourhood-fields to aggregate data, without ever having access to identifiable data.-Encoding such rules in the schema file using a custom scope-would require every other request that accesses the dataset to also have this scope.+The ``mandatoryFilterSets`` ensures that listings are restricted on a need-to-know basis.+Only when some information can be provided, the API grants access to see the remaining data.+For example, a frontend office employee may only see data of someone when they can already+provide their last name and postal code.++Profiles can also be used to avoid cluttering the main schema with many ``auth`` rules.+Instead, deny full access to the table, and open specific fields via profiles.+For example, a statistician might be allowed to read age and neighbourhood fields to aggregate data,+without ever having access to identifiable data.++Application in DSO-API+----------------------++The dataset and profile files stored in the repository for Amsterdam Schema.+Both are imported into the DSO-API database, and loaded once on startup.++Schematools+~~~~~~~~~~~++The authorization engine is implemented within ``schematools`` as low-level Python objects.+The ``UserScopes`` class provides the main logic, which is accessed within the DSO-API+as ``request.user_scopes.has_..._access()``. Each access function returns a+:class:`~schematools.types.Permission` object with the granted access level.+When no permission is given, the object evaluates to ``False`` in boolean comparisons (e.g. ``if permission``). +The :class:`~schematools.types.Permission` object provides a ``level``, ``sub_value`` and ``transform_function()``+for fine granted access levels, such as only viewing a field as encoded or only it's first 3 letters.

Fixed in dac3902b03cdf11fef079c3c589a07b0960972b5

vdboor

comment created time in 12 days