From 93b3c38347b96b281b0ac36b994b03bea7d6af85 Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Thu, 20 Jan 2022 17:27:59 +0100 Subject: [PATCH 01/33] :zap: added url check for patch. --- .../tests/EnkelvoudigInformatieObjectVersionHistoryTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectVersionHistoryTest.java b/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectVersionHistoryTest.java index d478bec..fe41df9 100644 --- a/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectVersionHistoryTest.java +++ b/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectVersionHistoryTest.java @@ -97,7 +97,8 @@ public void test_eio_partial_update() { Assert.assertEquals(res.getStatusCode(), 200); json = new JsonPath(res.body().asString()); - + + Assert.assertEquals(eioUrl, json.getString("url")); Assert.assertEquals(json.getString("beschrijving"), "beschrijving2"); Assert.assertEquals(json.getInt("versie"), 2); From 0956e0846ff225df828ffed5971509a06b78d3ed Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Tue, 8 Mar 2022 14:28:51 +0100 Subject: [PATCH 02/33] :sparkle: added bestandsnaam validation unit test --- .../custom/CustomVersionHistoryTest.java | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/test/java/nl/contezza/drc/tests/custom/CustomVersionHistoryTest.java b/src/test/java/nl/contezza/drc/tests/custom/CustomVersionHistoryTest.java index 4804c1d..34820b9 100644 --- a/src/test/java/nl/contezza/drc/tests/custom/CustomVersionHistoryTest.java +++ b/src/test/java/nl/contezza/drc/tests/custom/CustomVersionHistoryTest.java @@ -96,6 +96,40 @@ public void test_versie_filter() { Assert.assertEquals(json.getString("beschrijving"), "beschrijving1"); Assert.assertEquals(json.getInt("versie"), 2); } + + @Test(groups = "CustomVersionHistory") + public void test_update_bestandsnaam() { + EIOService eioService = new EIOService(); + + // Create EIO + JsonPath json = new JsonPath(eioService.testCreate(informatieobjecttypeUrl, "beschrijving1", "some content").asString()); + String eioUrl = json.getString("url"); + + // Lock EIO + String lock = new JsonPath(eioService.lock(eioUrl).asString()).getString("lock"); + + // Validate original name + json = new JsonPath(eioService.getEIO(eioUrl, null, null).asString()); + Assert.assertEquals(json.getString("bestandsnaam"), "dummy.txt"); + + // Change name + JSONObject body = new JSONObject(); + body.put("bestandsnaam", "dummy2.txt"); + body.put("lock", lock); + + Response res = eioService.partialUpdate(eioUrl, body); + Assert.assertEquals(res.getStatusCode(), 200); + + json = new JsonPath(res.asString()); + Assert.assertEquals(json.getString("bestandsnaam"), "dummy2.txt"); + + // Unlock file + res = eioService.unlock(eioUrl, lock); + Assert.assertEquals(res.getStatusCode(), 204); + + json = new JsonPath(eioService.getEIO(eioUrl, null, null).asString()); + Assert.assertEquals(json.getString("bestandsnaam"), "dummy2.txt"); + } /** * Create version by unllock, update and unlock EIO. From 07b469706b0469b4bc47347e8e993d40177b6cee Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Tue, 29 Mar 2022 16:58:48 +0200 Subject: [PATCH 03/33] :zap: added version check during lock phase. --- .../nl/contezza/drc/service/EIOService.java | 2 +- ...digInformatieObjectVersionHistoryTest.java | 23 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/main/java/nl/contezza/drc/service/EIOService.java b/src/main/java/nl/contezza/drc/service/EIOService.java index f1e4691..fe8bb69 100644 --- a/src/main/java/nl/contezza/drc/service/EIOService.java +++ b/src/main/java/nl/contezza/drc/service/EIOService.java @@ -161,7 +161,7 @@ public Response lock(String eioUrl) { return given() .spec(DRCRequestSpecification.getDefault()) .when() - .post("/enkelvoudiginformatieobjecten/"+id + "/lock") + .post("/enkelvoudiginformatieobjecten/"+ id + "/lock") .then() .extract() .response(); diff --git a/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectVersionHistoryTest.java b/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectVersionHistoryTest.java index fe41df9..def0c93 100644 --- a/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectVersionHistoryTest.java +++ b/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectVersionHistoryTest.java @@ -360,4 +360,27 @@ public void test_eio_download_content_filter_by_registratie() { String data = eioService.downloadAsString(json.getString("inhoud")); Assert.assertEquals(data, "inhoud1"); } + + @Test(groups = "EnkelvoudigInformatieObjectVersionHistory") + public void test_eio_version_number_during_locked() { + EIOService eioService = new EIOService(); + + JsonPath json = new JsonPath(eioService.testCreate(informatieobjecttypeUrl).asString()); + Assert.assertEquals(json.getString("versie"), "1"); + + String eioUrl = json.getString("url"); + + // Version 2 + json = new JsonPath(eioService.lock(eioUrl).asString()); + eioService.unlock(eioUrl, json.getString("lock")); + + // Only lock + eioService.lock(eioUrl); + + Response res2 = eioService.getEIO(eioUrl, null, null); + Assert.assertEquals(res2.getStatusCode(), 200); + + JsonPath json2 = new JsonPath(res2.asString()); + Assert.assertEquals(json2.getString("versie"), "2"); + } } \ No newline at end of file From b288599741a575f23c56fb1d4fe2cd126c30d929 Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Mon, 11 Jul 2022 15:08:47 +0200 Subject: [PATCH 04/33] fixed $ issue --- docker/docker-compose.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 2411785..23267a5 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -41,7 +41,7 @@ services: environment: - TZ=Europe/Amsterdam - DJANGO_SETTINGS_MODULE=openzaak.conf.docker - - SECRET_KEY=${SECRET_KEY:-splfak=i9e72pqk_9&2$s002d43sty1t#i)yxpa39(ja7p7z3x} + - SECRET_KEY=somesecretkey - DB_HOST=db - DB_NAME=openzaak - DB_USER=openzaak @@ -67,7 +67,7 @@ services: environment: &open-notificaties-env - TZ=Europe/Amsterdam - DJANGO_SETTINGS_MODULE=nrc.conf.docker - - SECRET_KEY=${SECRET_KEY:-y8=ynp!*&3z6!0ujpg$0nry%j#1z2@%hq9+1doh1bl+86w)730} + - SECRET_KEY=somesecretkey - RABBITMQ_HOST=rabbitmq - PUBLISH_BROKER_URL=amqp://guest:guest@rabbitmq:5672/%2F - CELERY_BROKER_URL=amqp://guest:guest@rabbitmq:5672// @@ -111,7 +111,7 @@ services: environment: - TZ=Europe/Amsterdam - DJANGO_SETTINGS_MODULE=drc.conf.docker - - SECRET_KEY=${SECRET_KEY:-5k_*2!3(#du#nv&+z#88jtm9=g+4)@nh)utv@#u)#3!m@b-0p1} + - SECRET_KEY=somesecretkey - DB_HOST=db - DB_NAME=drc - DB_USER=drc From 52b1aaa4620a79c51b9d1a1e31b6bc37954e1255 Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Mon, 11 Jul 2022 16:28:00 +0200 Subject: [PATCH 05/33] :sparkle: added ut for empty strings --- .../nl/contezza/drc/service/EIOService.java | 15 ++++++++ .../custom/CustomInputValidationTest.java | 34 +++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/src/main/java/nl/contezza/drc/service/EIOService.java b/src/main/java/nl/contezza/drc/service/EIOService.java index fe8bb69..5d31f75 100644 --- a/src/main/java/nl/contezza/drc/service/EIOService.java +++ b/src/main/java/nl/contezza/drc/service/EIOService.java @@ -35,6 +35,19 @@ public Response testCreate(String iot) { .response(); // @formatter:on } + + public Response testCreate(JSONObject jsonObject) { + // @formatter:off + return given() + .spec(DRCRequestSpecification.getDefault()) + .body(jsonObject.toString()) + .when() + .post("/enkelvoudiginformatieobjecten") + .then() + .extract() + .response(); + // @formatter:on + } public Response testCreate(RequestSpecification requestSpecification, String iot) { // @formatter:off @@ -74,6 +87,8 @@ public Response testCreate(String iot, String beschrijving, String inhoud) { .response(); // @formatter:on } + + public Response testCreate(String iot, String beschrijving, String inhoud, Date creatiedatum) { // @formatter:off diff --git a/src/test/java/nl/contezza/drc/tests/custom/CustomInputValidationTest.java b/src/test/java/nl/contezza/drc/tests/custom/CustomInputValidationTest.java index 0e8ad57..6bef197 100644 --- a/src/test/java/nl/contezza/drc/tests/custom/CustomInputValidationTest.java +++ b/src/test/java/nl/contezza/drc/tests/custom/CustomInputValidationTest.java @@ -2,9 +2,12 @@ import static io.restassured.RestAssured.given; +import java.util.Base64; import java.util.Date; +import java.util.UUID; import org.json.JSONArray; +import org.json.JSONObject; import org.testng.Assert; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; @@ -16,6 +19,7 @@ import nl.contezza.drc.service.DRCRequestSpecification; import nl.contezza.drc.service.EIOService; import nl.contezza.drc.service.ZTCService; +import nl.contezza.drc.utils.StringDate; /** * Some custom unit tests which are not mapped to any python scripts. @@ -69,4 +73,34 @@ public void create_eio_with_only_required_items() { Assert.assertEquals(res.getStatusCode(), 201); } + + @Test(groups = "CustomInputValidation") + public void create_eio_with_empty_strings() { + EIOService eioService = new EIOService(); + + JSONObject json = new JSONObject(); + json.put("identificatie", UUID.randomUUID().toString()); + json.put("bronorganisatie", "159351741"); + json.put("creatiedatum", StringDate.formatDate(new Date())); + json.put("ontvangstdatum", ""); + json.put("verzenddatum", ""); + json.put("titel", "detailed summary"); + json.put("auteur", "test_auteur"); + json.put("formaat", ""); + json.put("taal", "eng"); + json.put("bestandsnaam", ""); + json.put("inhoud", Base64.getEncoder().encodeToString("some file content".getBytes())); + json.put("link", ""); + json.put("beschrijving", ""); + json.put("informatieobjecttype", informatieobjecttypeUrl); + json.put("vertrouwelijkheidaanduiding", ""); + json.put("indicatieGebruiksrecht", ""); + json.put("ondertekening", ""); + json.put("integriteit", ""); + json.put("status", ""); + + Response res = eioService.testCreate(json); + + Assert.assertEquals(res.getStatusCode(), 201); + } } \ No newline at end of file From 8dff0cacfd2c587c19d2404e18d10e7918533502 Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Tue, 21 Mar 2023 16:01:26 +0100 Subject: [PATCH 06/33] =?UTF-8?q?=F0=9F=9A=A7=20updated=20all=20versions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 5 +- .vscode/settings.json | 82 + .vscode/tasks.json | 13 + README.md | 17 +- docker/docker-compose.alfresco.yml | 50 +- docker/docker-compose.yml | 92 +- .../drc/{admin.json => 0001-admin.json} | 0 .../drc/{services.json => 0002-services.json} | 0 docker/fixtures/drc/0003-config.json | 25 + ...ials.json => 0004-client-credentials.json} | 0 docker/fixtures/drc/0005-applicatie.json | 34 + docker/fixtures/drc/applicatie.json | 12 - docker/fixtures/drc/config.json | 25 - docker/fixtures/open-zaak/config.json | 33 +- drc.json | 334 +++ openzaak.json | 2157 +++++++++++++++++ purge.sh | 11 + 17 files changed, 2774 insertions(+), 116 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 .vscode/tasks.json rename docker/fixtures/drc/{admin.json => 0001-admin.json} (100%) rename docker/fixtures/drc/{services.json => 0002-services.json} (100%) create mode 100644 docker/fixtures/drc/0003-config.json rename docker/fixtures/drc/{client-credentials.json => 0004-client-credentials.json} (100%) create mode 100644 docker/fixtures/drc/0005-applicatie.json delete mode 100644 docker/fixtures/drc/applicatie.json delete mode 100644 docker/fixtures/drc/config.json create mode 100644 drc.json create mode 100644 openzaak.json create mode 100755 purge.sh diff --git a/.gitignore b/.gitignore index ba62c05..a0fd408 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,7 @@ bin target .m2/repository *.log -*.DS_Store \ No newline at end of file +*.DS_Store +/.apt_generated/ +/.apt_generated_tests/ +log* diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..e311e68 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,82 @@ +{ + "workbench.iconTheme": "material-icon-theme", + "editor.formatOnPaste": true, + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.wordWrap": "off", + "editor.wordWrapColumn": 180, + "editor.inlayHints.enabled": false, + "editor.fontSize": 14, + "prettier.printWidth": 180, + "[html]": { + "editor.defaultFormatter": "vscode.html-language-features" + }, + "html.format.wrapAttributes": "force-aligned", + "html.format.enable": true, + "[javascript][javascriptreact][typescript]": { + "editor.defaultFormatter": "vscode.typescript-language-features" + }, + "[json][jsonc]": { + "editor.defaultFormatter": "vscode.json-language-features" + }, + "[css][scss][less]": { + "editor.defaultFormatter": "vscode.css-language-features" + }, + "[json]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[xml]": { + "editor.defaultFormatter": "redhat.vscode-xml" + }, + "[ftl]": { + "editor.defaultFormatter": "AntonLilleby.xp-freemarker-formatter", + "editor.formatOnSave": false + }, + "[jsonc]": { + "editor.defaultFormatter": "vscode.json-language-features" + }, + "java.configuration.updateBuildConfiguration": "automatic", + "[java]": { + "editor.defaultFormatter": "redhat.java", + "editor.wordWrap": "off", + "editor.wordWrapColumn": 200, + "editor.fontWeight": 500 + }, + "[yaml]": { + "editor.defaultFormatter": "redhat.vscode-yaml" + }, + "maven.excludedFolders": [ + "**/.*", + "**/node_modules", + "**/target", + "**/bin", + "**/test/test-projects" + ], + "java.import.exclusions": [ + "**/node_modules/**", + "**/.metadata/**", + "**/archetype-resources/**", + "**/META-INF/maven/**", + "**/test/test-projects/**" + ], + "editor.lightbulb.enabled": false, + "java.checkstyle.configuration": "${workspaceFolder}/.vscode/java-checkstyle.xml", + "java.checkstyle.version": "10.3.4", + "git.inputValidation": "off", + "[shellscript]": { + "editor.defaultFormatter": "foxundermoon.shell-format" + }, + "editor.codeActionsOnSave": { + "source.organizeImports": true + }, + "[dockerfile]": { + "editor.defaultFormatter": "ms-azuretools.vscode-docker" + }, + "[ignore]": { + "editor.defaultFormatter": "foxundermoon.shell-format" + }, + "java.compile.nullAnalysis.mode": "automatic", + "cSpell.words": [ + "bestandsomvang" + ] +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..d38fb18 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,13 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "_clean install", + "type": "shell", + "command": "mvn clean install -U", + "options": { + "cwd": "${workspaceFolder}" + } + } + ] +} \ No newline at end of file diff --git a/README.md b/README.md index 842b310..83b50cd 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,9 @@ Document registration component (DRC) **T**est **A**utomation **S**ystem (TAS) * The following components are used in this project: -* [RestAssured](https://rest-assured.io); -* [TestNG](https://testng.org); -* [Lombok](https://projectlombok.org). +- [RestAssured](https://rest-assured.io); +- [TestNG](https://testng.org); +- [Lombok](https://projectlombok.org). If using Eclipse install Lombok (Help -> Install New Software -> https://projectlombok.org/p2). Visit [project Lombok site](https://projectlombok.org/setup/eclipse) for more information. @@ -31,10 +31,11 @@ cd docker docker-compose -f docker-compose.yml -f docker-compose.alfresco.yml up -d ``` -* http://localhost:8000 (open-zaak) -* http://localhost:8001 (open-notificaties) -* http://localhost:8002 (drc-gemma) -* http://localhost:8080 (alfresco) +- http://localhost:8000 (open-zaak) +- http://localhost:8001 (open-notificaties) +- http://localhost:8002 (drc-gemma) +- http://localhost:8080/alfresco (alfresco) +- http://localhost:8081/share (share client) Login: admin/admin @@ -82,4 +83,4 @@ target/surefire-reports/index.html ## License -Licensed under the [EUPL](LICENSE.md) \ No newline at end of file +Licensed under the [EUPL](LICENSE.md) diff --git a/docker/docker-compose.alfresco.yml b/docker/docker-compose.alfresco.yml index 2600ae6..22151cb 100644 --- a/docker/docker-compose.alfresco.yml +++ b/docker/docker-compose.alfresco.yml @@ -2,9 +2,20 @@ version: "3.8" services: drc-docker-platform.local: - image: hub.contezza.nl/projecten/utrecht/drc/platform:latest + image: harbor.contezza.nl/utrecht/drc/platform:latest environment: TZ: Europe/Amsterdam + JAVA_TOOL_OPTIONS: " + -Dencryption.keystore.type=JCEKS + -Dencryption.cipherAlgorithm=DESede/CBC/PKCS5Padding + -Dencryption.keyAlgorithm=DESede + -Dencryption.keystore.location=/usr/local/tomcat/shared/classes/alfresco/extension/keystore/keystore + -Dmetadata-keystore.password=mp6yc0UD9e + -Dmetadata-keystore.aliases=metadata + -Dmetadata-keystore.metadata.password=oKIWzVdEdA + -Dmetadata-keystore.metadata.algorithm=DESede + -Dmail.poller.enabled=true + " JAVA_OPTS: " -Ddb.url=jdbc:postgresql://db:5432/alfresco -Dalfresco.host=drc-docker-platform.local @@ -45,16 +56,16 @@ services: aliases: - drc-docker-platform.local -# drc-docker-share: -# image: hub.contezza.nl/projecten/utrecht/drc/share:latest -# environment: -# REPO_HOST: "drc-docker-platform.local" -# REPO_PORT: "8080" -# ports: -# - "8081:8080" + drc-docker-share: + image: harbor.contezza.nl/utrecht/drc/share:latest + environment: + REPO_HOST: "drc-docker-platform.local" + REPO_PORT: "8080" + ports: + - "8081:8080" drc-docker-platform-ass: - image: alfresco/alfresco-search-services:1.4.1.2 + image: harbor.contezza.nl/base/alfresco-search-services:2.0.6 environment: TZ: Europe/Amsterdam SOLR_ALFRESCO_HOST: drc-docker-platform.local @@ -62,38 +73,29 @@ services: SOLR_SOLR_HOST: drc-docker-platform-ass SOLR_SOLR_PORT: "8983" SOLR_CREATE_ALFRESCO_DEFAULTS: alfresco,archive - ALFRESCO_SECURE_COMMS: none - ports: - - "8983:8983" + JAVA_TOOL_OPTIONS: "-Dalfresco.secureComms=secret -Dalfresco.secureComms.secret=secret" volumes: - vol_drc-docker-platform_solr_data:/opt/alfresco-search-services/data networks: - dev_network drc-docker-platform-activemq: - image: alfresco/alfresco-activemq:5.15.8 - ports: - - 8161:8161 # Web Console - - 5672:5672 # AMQP - - 61616:61616 # OpenWire - - 61613:61613 # STOMP + image: harbor.contezza.nl/docker.io/alfresco/alfresco-activemq:5.16.1 networks: - dev_network transform-router: - image: hub.contezza.nl/projecten/utrecht/alfresco-transform-router:1.2.0 + image: harbor.contezza.nl/quay.io/alfresco/alfresco-transform-router:1.2.0 environment: JAVA_OPTS: " -Xms256m -Xmx512m" ACTIVEMQ_URL: nio://drc-docker-platform-activemq:61616 CORE_AIO_URL: http://transform-core-aio:8090 FILE_STORE_URL: http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file - ports: - - 8095:8095 networks: - dev_network transform-core-aio: - image: alfresco/alfresco-transform-core-aio:2.2.2 + image: harbor.contezza.nl/quay.io/alfresco/alfresco-transform-core-aio:2.6.0 environment: JAVA_OPTS: " -Xms700m -Xmx700m @@ -102,11 +104,9 @@ services: FILE_STORE_URL: http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file networks: - dev_network - # ports: - # - 8090:8090 shared-file-store: - image: alfresco/alfresco-shared-file-store:0.5.3 + image: harbor.contezza.nl/quay.io/alfresco/alfresco-shared-file-store:1.5.3 environment: JAVA_OPTS: " -Xms256m -Xmx512m" scheduler.content.age.millis: "86400000" diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 23267a5..1de478b 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -1,7 +1,6 @@ version: "3.8" services: - # Database - shared by Open Zaak & Open Notificaties db: image: postgis/postgis:11-3.0 @@ -13,17 +12,17 @@ services: - vol_drc_db:/var/lib/postgresql/data - ./docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d networks: - dev_network: - aliases: - - db + dev_network: + aliases: + - db # Cache db - shared by Open Zaak & Open Notificaties redis: image: redis:5 networks: - dev_network: - aliases: - - redis + dev_network: + aliases: + - redis # Message broker - Open Notificaties rabbitmq: @@ -32,12 +31,12 @@ services: # - RABBITMQ_DEFAULT_USER=guest # - RABBITMQ_DEFAULT_PASS=guest networks: - dev_network: - aliases: - - rabbitmq + dev_network: + aliases: + - rabbitmq open-zaak.local: - image: docker.io/openzaak/open-zaak:1.4.0 + image: docker.io/openzaak/open-zaak:1.8.2 environment: - TZ=Europe/Amsterdam - DJANGO_SETTINGS_MODULE=openzaak.conf.docker @@ -49,6 +48,10 @@ services: - ALLOWED_HOSTS=open-zaak.local,open-zaak.local:8000,localhost,localhost:8000 - CACHE_DEFAULT=redis:6379/0 - CACHE_AXES=redis:6379/0 + - CELERY_BROKER_URL=redis://redis:6379/1 + - CELERY_RESULT_BACKEND=redis://redis:6379/1 + - CELERY_LOGLEVEL=DEBUG + - CELERY_WORKER_CONCURRENCY=${CELERY_WORKER_CONCURRENCY:-4} - SENDFILE_BACKEND=django_sendfile.backends.simple volumes: - ./fixtures/open-zaak:/app/fixtures @@ -58,12 +61,39 @@ services: - db - redis networks: - dev_network: - aliases: - - open-zaak.local + dev_network: + aliases: + - open-zaak.local + + open-zaak-celery: + image: docker.io/openzaak/open-zaak:1.8.2 + environment: + - TZ=Europe/Amsterdam + - DJANGO_SETTINGS_MODULE=openzaak.conf.docker + - SECRET_KEY=somesecretkey + - DB_HOST=db + - DB_NAME=openzaak + - DB_USER=openzaak + - IS_HTTPS=no + - ALLOWED_HOSTS=open-zaak.local,open-zaak.local:8000,localhost,localhost:8000 + - CACHE_DEFAULT=redis:6379/0 + - CACHE_AXES=redis:6379/0 + - CELERY_BROKER_URL=redis://redis:6379/1 + - CELERY_RESULT_BACKEND=redis://redis:6379/1 + - CELERY_LOGLEVEL=DEBUG + - CELERY_WORKER_CONCURRENCY=${CELERY_WORKER_CONCURRENCY:-4} + - SENDFILE_BACKEND=django_sendfile.backends.simple + command: /celery_worker.sh + depends_on: + - db + - redis + networks: + dev_network: + aliases: + - open-zaak-celery open-notificaties-worker: - image: openzaak/open-notificaties:1.1.2 + image: openzaak/open-notificaties:1.4.3 environment: &open-notificaties-env - TZ=Europe/Amsterdam - DJANGO_SETTINGS_MODULE=nrc.conf.docker @@ -71,8 +101,9 @@ services: - RABBITMQ_HOST=rabbitmq - PUBLISH_BROKER_URL=amqp://guest:guest@rabbitmq:5672/%2F - CELERY_BROKER_URL=amqp://guest:guest@rabbitmq:5672// - - CELERY_RESULT_BACKEND=amqp://guest:guest@rabbitmq:5672// + - CELERY_RESULT_BACKEND=redis://redis:6379/1 - CELERY_LOGLEVEL=DEBUG + - CELERY_WORKER_CONCURRENCY=${CELERY_WORKER_CONCURRENCY:-4} - DB_HOST=db - DB_NAME=opennotificaties - DB_USER=opennotificaties @@ -85,12 +116,12 @@ services: - db - rabbitmq networks: - dev_network: - aliases: - - open-notificaties-worker - + dev_network: + aliases: + - open-notificaties-worker + open-notificaties.local: - image: openzaak/open-notificaties:1.1.2 + image: openzaak/open-notificaties:1.4.3 environment: *open-notificaties-env volumes: - ./fixtures/open-notificaties:/app/fixtures @@ -102,12 +133,12 @@ services: - redis - open-notificaties-worker networks: - dev_network: - aliases: - - open-notificaties.local + dev_network: + aliases: + - open-notificaties.local drc.local: - image: docker.io/vngr/gemma-drc:1.0.1.post1 + image: docker.io/vngr/gemma-drc:1.2.3 environment: - TZ=Europe/Amsterdam - DJANGO_SETTINGS_MODULE=drc.conf.docker @@ -128,16 +159,15 @@ services: depends_on: - db networks: - dev_network: - aliases: - - drc.local + dev_network: + aliases: + - drc.local networks: - dev_network: - external: true + dev_network: + external: true volumes: vol_drc_db: vol_drc_media: vol_drc_private_media: - \ No newline at end of file diff --git a/docker/fixtures/drc/admin.json b/docker/fixtures/drc/0001-admin.json similarity index 100% rename from docker/fixtures/drc/admin.json rename to docker/fixtures/drc/0001-admin.json diff --git a/docker/fixtures/drc/services.json b/docker/fixtures/drc/0002-services.json similarity index 100% rename from docker/fixtures/drc/services.json rename to docker/fixtures/drc/0002-services.json diff --git a/docker/fixtures/drc/0003-config.json b/docker/fixtures/drc/0003-config.json new file mode 100644 index 0000000..0b017de --- /dev/null +++ b/docker/fixtures/drc/0003-config.json @@ -0,0 +1,25 @@ +[ + { + "model": "notifications.notificationsconfig", + "pk": 1, + "fields": { + "api_root": "http://open-notificaties.local:8000/api/v1/" + } + }, + { + "model": "authorizations.authorizationsconfig", + "pk": 1, + "fields": { + "api_root": "http://open-zaak.local:8000/autorisaties/api/v1/", + "component": "drc" + } + }, + { + "model": "sites.site", + "pk": 1, + "fields": { + "domain": "drc.local:8000", + "name": "drc.local:8000" + } + } +] diff --git a/docker/fixtures/drc/client-credentials.json b/docker/fixtures/drc/0004-client-credentials.json similarity index 100% rename from docker/fixtures/drc/client-credentials.json rename to docker/fixtures/drc/0004-client-credentials.json diff --git a/docker/fixtures/drc/0005-applicatie.json b/docker/fixtures/drc/0005-applicatie.json new file mode 100644 index 0000000..4eba2e8 --- /dev/null +++ b/docker/fixtures/drc/0005-applicatie.json @@ -0,0 +1,34 @@ +[ + { + "model": "authorizations.applicatie", + "pk": 3, + "fields": { + "uuid": "8aa37d94-f2ff-4388-b27c-ea2527458054", + "client_ids": "[\"drc_api_tests\"]", + "label": "drc_api_tests", + "heeft_alle_autorisaties": true + } + }, + { + "model": "zgw_consumers.service", + "pk": 1, + "fields": { + "label": "NRC", + "oas": "http://open-notificaties.local:8000/api/v1/schema/openapi.yml", + "oas_file": "", + "api_type": "nrc", + "api_root": "http://open-notificaties.local:8000/api/v1/", + "client_id": "drc", + "secret": "drc", + "auth_type": "zgw", + "header_key": "", + "header_value": "", + "nlx": "", + "user_id": "drc", + "user_representation": "OpenZaak", + "client_certificate": null, + "server_certificate": null + } + }, + { "model": "notifications_api_common.notificationsconfig", "pk": 1, "fields": { "notifications_api_service": 1 } } +] diff --git a/docker/fixtures/drc/applicatie.json b/docker/fixtures/drc/applicatie.json deleted file mode 100644 index 48f17f8..0000000 --- a/docker/fixtures/drc/applicatie.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - { - "model": "authorizations.applicatie", - "pk": 3, - "fields": { - "uuid": "8aa37d94-f2ff-4388-b27c-ea2527458054", - "client_ids": "[\"drc_api_tests\"]", - "label": "drc_api_tests", - "heeft_alle_autorisaties": true - } - } -] \ No newline at end of file diff --git a/docker/fixtures/drc/config.json b/docker/fixtures/drc/config.json deleted file mode 100644 index dc4114a..0000000 --- a/docker/fixtures/drc/config.json +++ /dev/null @@ -1,25 +0,0 @@ -[ - { - "model": "notifications.notificationsconfig", - "pk": 1, - "fields": { - "api_root": "http://open-notificaties.local:8000/api/v1/" - } - }, - { - "model": "authorizations.authorizationsconfig", - "pk": 1, - "fields": { - "api_root": "http://open-zaak.local:8000/autorisaties/api/v1/", - "component": "drc" - } - }, - { - "model": "sites.site", - "pk": 1, - "fields": { - "domain": "drc.local:8000", - "name": "drc.local:8000" - } - } -] diff --git a/docker/fixtures/open-zaak/config.json b/docker/fixtures/open-zaak/config.json index 3c2a2ae..4c62151 100644 --- a/docker/fixtures/open-zaak/config.json +++ b/docker/fixtures/open-zaak/config.json @@ -1,17 +1,22 @@ [ - { - "model": "notifications.notificationsconfig", - "pk": 1, - "fields": { - "api_root": "http://open-notificaties.local:8000/api/v1/" - } - }, - { - "model": "sites.site", - "pk": 1, - "fields": { - "domain": "open-zaak.local:8000", - "name": "open-zaak.local:8000" - } + { + "model": "notifications.notificationsconfig", + "pk": 1, + "fields": { + "api_root": "http://open-notificaties.local:8000/api/v1/" } + }, + { + "model": "notifications_api_common.notificationsconfig", + "pk": 1, + "fields": { "notifications_api_service": 2, "notification_delivery_max_retries": 5, "notification_delivery_retry_backoff": 3, "notification_delivery_retry_backoff_max": 48 } + }, + { + "model": "sites.site", + "pk": 1, + "fields": { + "domain": "open-zaak.local:8000", + "name": "open-zaak.local:8000" + } + } ] diff --git a/drc.json b/drc.json new file mode 100644 index 0000000..bc76f75 --- /dev/null +++ b/drc.json @@ -0,0 +1,334 @@ +[ + { "model": "contenttypes.contenttype", "pk": 2, "fields": { "app_label": "contenttypes", "model": "contenttype" } }, + { "model": "contenttypes.contenttype", "pk": 3, "fields": { "app_label": "auth", "model": "permission" } }, + { "model": "contenttypes.contenttype", "pk": 4, "fields": { "app_label": "auth", "model": "group" } }, + { "model": "contenttypes.contenttype", "pk": 5, "fields": { "app_label": "sessions", "model": "session" } }, + { "model": "contenttypes.contenttype", "pk": 6, "fields": { "app_label": "sites", "model": "site" } }, + { "model": "contenttypes.contenttype", "pk": 7, "fields": { "app_label": "admin", "model": "logentry" } }, + { "model": "contenttypes.contenttype", "pk": 8, "fields": { "app_label": "axes", "model": "accessattempt" } }, + { "model": "contenttypes.contenttype", "pk": 9, "fields": { "app_label": "axes", "model": "accesslog" } }, + { "model": "contenttypes.contenttype", "pk": 10, "fields": { "app_label": "axes", "model": "accessfailurelog" } }, + { "model": "contenttypes.contenttype", "pk": 11, "fields": { "app_label": "corsheaders", "model": "corsmodel" } }, + { "model": "contenttypes.contenttype", "pk": 12, "fields": { "app_label": "vng_api_common", "model": "jwtsecret" } }, + { "model": "contenttypes.contenttype", "pk": 13, "fields": { "app_label": "vng_api_common", "model": "apicredential" } }, + { "model": "contenttypes.contenttype", "pk": 14, "fields": { "app_label": "authorizations", "model": "applicatie" } }, + { "model": "contenttypes.contenttype", "pk": 15, "fields": { "app_label": "authorizations", "model": "autorisatie" } }, + { "model": "contenttypes.contenttype", "pk": 16, "fields": { "app_label": "authorizations", "model": "authorizationsconfig" } }, + { "model": "contenttypes.contenttype", "pk": 17, "fields": { "app_label": "audittrails", "model": "audittrail" } }, + { "model": "contenttypes.contenttype", "pk": 18, "fields": { "app_label": "notifications", "model": "notificationsconfig" } }, + { "model": "contenttypes.contenttype", "pk": 19, "fields": { "app_label": "notifications", "model": "subscription" } }, + { "model": "contenttypes.contenttype", "pk": 20, "fields": { "app_label": "simple_certmanager", "model": "certificate" } }, + { "model": "contenttypes.contenttype", "pk": 21, "fields": { "app_label": "zgw_consumers", "model": "service" } }, + { "model": "contenttypes.contenttype", "pk": 22, "fields": { "app_label": "zgw_consumers", "model": "nlxconfig" } }, + { "model": "contenttypes.contenttype", "pk": 23, "fields": { "app_label": "zgw_consumers", "model": "certificate" } }, + { "model": "contenttypes.contenttype", "pk": 24, "fields": { "app_label": "notifications_api_common", "model": "notificationsconfig" } }, + { "model": "contenttypes.contenttype", "pk": 25, "fields": { "app_label": "notifications_api_common", "model": "subscription" } }, + { "model": "contenttypes.contenttype", "pk": 26, "fields": { "app_label": "accounts", "model": "user" } }, + { "model": "contenttypes.contenttype", "pk": 27, "fields": { "app_label": "datamodel", "model": "enkelvoudiginformatieobject" } }, + { "model": "contenttypes.contenttype", "pk": 28, "fields": { "app_label": "datamodel", "model": "objectinformatieobject" } }, + { "model": "contenttypes.contenttype", "pk": 29, "fields": { "app_label": "datamodel", "model": "gebruiksrechten" } }, + { "model": "contenttypes.contenttype", "pk": 30, "fields": { "app_label": "datamodel", "model": "enkelvoudiginformatieobjectcanonical" } }, + { "model": "contenttypes.contenttype", "pk": 31, "fields": { "app_label": "datamodel", "model": "bestandsdeel" } }, + { "model": "contenttypes.contenttype", "pk": 32, "fields": { "app_label": "datamodel", "model": "verzending" } }, + { "model": "auth.permission", "pk": 2, "fields": { "name": "Can add content type", "content_type": 2, "codename": "add_contenttype" } }, + { "model": "auth.permission", "pk": 3, "fields": { "name": "Can change content type", "content_type": 2, "codename": "change_contenttype" } }, + { "model": "auth.permission", "pk": 4, "fields": { "name": "Can delete content type", "content_type": 2, "codename": "delete_contenttype" } }, + { "model": "auth.permission", "pk": 5, "fields": { "name": "Can view content type", "content_type": 2, "codename": "view_contenttype" } }, + { "model": "auth.permission", "pk": 6, "fields": { "name": "Can add permission", "content_type": 3, "codename": "add_permission" } }, + { "model": "auth.permission", "pk": 7, "fields": { "name": "Can change permission", "content_type": 3, "codename": "change_permission" } }, + { "model": "auth.permission", "pk": 8, "fields": { "name": "Can delete permission", "content_type": 3, "codename": "delete_permission" } }, + { "model": "auth.permission", "pk": 9, "fields": { "name": "Can view permission", "content_type": 3, "codename": "view_permission" } }, + { "model": "auth.permission", "pk": 10, "fields": { "name": "Can add group", "content_type": 4, "codename": "add_group" } }, + { "model": "auth.permission", "pk": 11, "fields": { "name": "Can change group", "content_type": 4, "codename": "change_group" } }, + { "model": "auth.permission", "pk": 12, "fields": { "name": "Can delete group", "content_type": 4, "codename": "delete_group" } }, + { "model": "auth.permission", "pk": 13, "fields": { "name": "Can view group", "content_type": 4, "codename": "view_group" } }, + { "model": "auth.permission", "pk": 14, "fields": { "name": "Can add session", "content_type": 5, "codename": "add_session" } }, + { "model": "auth.permission", "pk": 15, "fields": { "name": "Can change session", "content_type": 5, "codename": "change_session" } }, + { "model": "auth.permission", "pk": 16, "fields": { "name": "Can delete session", "content_type": 5, "codename": "delete_session" } }, + { "model": "auth.permission", "pk": 17, "fields": { "name": "Can view session", "content_type": 5, "codename": "view_session" } }, + { "model": "auth.permission", "pk": 18, "fields": { "name": "Can add site", "content_type": 6, "codename": "add_site" } }, + { "model": "auth.permission", "pk": 19, "fields": { "name": "Can change site", "content_type": 6, "codename": "change_site" } }, + { "model": "auth.permission", "pk": 20, "fields": { "name": "Can delete site", "content_type": 6, "codename": "delete_site" } }, + { "model": "auth.permission", "pk": 21, "fields": { "name": "Can view site", "content_type": 6, "codename": "view_site" } }, + { "model": "auth.permission", "pk": 22, "fields": { "name": "Can add log entry", "content_type": 7, "codename": "add_logentry" } }, + { "model": "auth.permission", "pk": 23, "fields": { "name": "Can change log entry", "content_type": 7, "codename": "change_logentry" } }, + { "model": "auth.permission", "pk": 24, "fields": { "name": "Can delete log entry", "content_type": 7, "codename": "delete_logentry" } }, + { "model": "auth.permission", "pk": 25, "fields": { "name": "Can view log entry", "content_type": 7, "codename": "view_logentry" } }, + { "model": "auth.permission", "pk": 26, "fields": { "name": "Can add access attempt", "content_type": 8, "codename": "add_accessattempt" } }, + { "model": "auth.permission", "pk": 27, "fields": { "name": "Can change access attempt", "content_type": 8, "codename": "change_accessattempt" } }, + { "model": "auth.permission", "pk": 28, "fields": { "name": "Can delete access attempt", "content_type": 8, "codename": "delete_accessattempt" } }, + { "model": "auth.permission", "pk": 29, "fields": { "name": "Can view access attempt", "content_type": 8, "codename": "view_accessattempt" } }, + { "model": "auth.permission", "pk": 30, "fields": { "name": "Can add access log", "content_type": 9, "codename": "add_accesslog" } }, + { "model": "auth.permission", "pk": 31, "fields": { "name": "Can change access log", "content_type": 9, "codename": "change_accesslog" } }, + { "model": "auth.permission", "pk": 32, "fields": { "name": "Can delete access log", "content_type": 9, "codename": "delete_accesslog" } }, + { "model": "auth.permission", "pk": 33, "fields": { "name": "Can view access log", "content_type": 9, "codename": "view_accesslog" } }, + { "model": "auth.permission", "pk": 34, "fields": { "name": "Can add access failure", "content_type": 10, "codename": "add_accessfailurelog" } }, + { "model": "auth.permission", "pk": 35, "fields": { "name": "Can change access failure", "content_type": 10, "codename": "change_accessfailurelog" } }, + { "model": "auth.permission", "pk": 36, "fields": { "name": "Can delete access failure", "content_type": 10, "codename": "delete_accessfailurelog" } }, + { "model": "auth.permission", "pk": 37, "fields": { "name": "Can view access failure", "content_type": 10, "codename": "view_accessfailurelog" } }, + { "model": "auth.permission", "pk": 38, "fields": { "name": "Can add cors model", "content_type": 11, "codename": "add_corsmodel" } }, + { "model": "auth.permission", "pk": 39, "fields": { "name": "Can change cors model", "content_type": 11, "codename": "change_corsmodel" } }, + { "model": "auth.permission", "pk": 40, "fields": { "name": "Can delete cors model", "content_type": 11, "codename": "delete_corsmodel" } }, + { "model": "auth.permission", "pk": 41, "fields": { "name": "Can view cors model", "content_type": 11, "codename": "view_corsmodel" } }, + { "model": "auth.permission", "pk": 42, "fields": { "name": "Can add client credential", "content_type": 12, "codename": "add_jwtsecret" } }, + { "model": "auth.permission", "pk": 43, "fields": { "name": "Can change client credential", "content_type": 12, "codename": "change_jwtsecret" } }, + { "model": "auth.permission", "pk": 44, "fields": { "name": "Can delete client credential", "content_type": 12, "codename": "delete_jwtsecret" } }, + { "model": "auth.permission", "pk": 45, "fields": { "name": "Can view client credential", "content_type": 12, "codename": "view_jwtsecret" } }, + { "model": "auth.permission", "pk": 46, "fields": { "name": "Can add external API credential", "content_type": 13, "codename": "add_apicredential" } }, + { "model": "auth.permission", "pk": 47, "fields": { "name": "Can change external API credential", "content_type": 13, "codename": "change_apicredential" } }, + { "model": "auth.permission", "pk": 48, "fields": { "name": "Can delete external API credential", "content_type": 13, "codename": "delete_apicredential" } }, + { "model": "auth.permission", "pk": 49, "fields": { "name": "Can view external API credential", "content_type": 13, "codename": "view_apicredential" } }, + { "model": "auth.permission", "pk": 50, "fields": { "name": "Can add applicatie", "content_type": 14, "codename": "add_applicatie" } }, + { "model": "auth.permission", "pk": 51, "fields": { "name": "Can change applicatie", "content_type": 14, "codename": "change_applicatie" } }, + { "model": "auth.permission", "pk": 52, "fields": { "name": "Can delete applicatie", "content_type": 14, "codename": "delete_applicatie" } }, + { "model": "auth.permission", "pk": 53, "fields": { "name": "Can view applicatie", "content_type": 14, "codename": "view_applicatie" } }, + { "model": "auth.permission", "pk": 54, "fields": { "name": "Can add autorisatie", "content_type": 15, "codename": "add_autorisatie" } }, + { "model": "auth.permission", "pk": 55, "fields": { "name": "Can change autorisatie", "content_type": 15, "codename": "change_autorisatie" } }, + { "model": "auth.permission", "pk": 56, "fields": { "name": "Can delete autorisatie", "content_type": 15, "codename": "delete_autorisatie" } }, + { "model": "auth.permission", "pk": 57, "fields": { "name": "Can view autorisatie", "content_type": 15, "codename": "view_autorisatie" } }, + { "model": "auth.permission", "pk": 58, "fields": { "name": "Can add Autorisatiecomponentconfiguratie", "content_type": 16, "codename": "add_authorizationsconfig" } }, + { "model": "auth.permission", "pk": 59, "fields": { "name": "Can change Autorisatiecomponentconfiguratie", "content_type": 16, "codename": "change_authorizationsconfig" } }, + { "model": "auth.permission", "pk": 60, "fields": { "name": "Can delete Autorisatiecomponentconfiguratie", "content_type": 16, "codename": "delete_authorizationsconfig" } }, + { "model": "auth.permission", "pk": 61, "fields": { "name": "Can view Autorisatiecomponentconfiguratie", "content_type": 16, "codename": "view_authorizationsconfig" } }, + { "model": "auth.permission", "pk": 62, "fields": { "name": "Can add audit trail", "content_type": 17, "codename": "add_audittrail" } }, + { "model": "auth.permission", "pk": 63, "fields": { "name": "Can change audit trail", "content_type": 17, "codename": "change_audittrail" } }, + { "model": "auth.permission", "pk": 64, "fields": { "name": "Can delete audit trail", "content_type": 17, "codename": "delete_audittrail" } }, + { "model": "auth.permission", "pk": 65, "fields": { "name": "Can view audit trail", "content_type": 17, "codename": "view_audittrail" } }, + { "model": "auth.permission", "pk": 66, "fields": { "name": "Can add Notificatiescomponentconfiguratie", "content_type": 18, "codename": "add_notificationsconfig" } }, + { "model": "auth.permission", "pk": 67, "fields": { "name": "Can change Notificatiescomponentconfiguratie", "content_type": 18, "codename": "change_notificationsconfig" } }, + { "model": "auth.permission", "pk": 68, "fields": { "name": "Can delete Notificatiescomponentconfiguratie", "content_type": 18, "codename": "delete_notificationsconfig" } }, + { "model": "auth.permission", "pk": 69, "fields": { "name": "Can view Notificatiescomponentconfiguratie", "content_type": 18, "codename": "view_notificationsconfig" } }, + { "model": "auth.permission", "pk": 70, "fields": { "name": "Can add Webhook subscription", "content_type": 19, "codename": "add_subscription" } }, + { "model": "auth.permission", "pk": 71, "fields": { "name": "Can change Webhook subscription", "content_type": 19, "codename": "change_subscription" } }, + { "model": "auth.permission", "pk": 72, "fields": { "name": "Can delete Webhook subscription", "content_type": 19, "codename": "delete_subscription" } }, + { "model": "auth.permission", "pk": 73, "fields": { "name": "Can view Webhook subscription", "content_type": 19, "codename": "view_subscription" } }, + { "model": "auth.permission", "pk": 74, "fields": { "name": "Can add certificate", "content_type": 20, "codename": "add_certificate" } }, + { "model": "auth.permission", "pk": 75, "fields": { "name": "Can change certificate", "content_type": 20, "codename": "change_certificate" } }, + { "model": "auth.permission", "pk": 76, "fields": { "name": "Can delete certificate", "content_type": 20, "codename": "delete_certificate" } }, + { "model": "auth.permission", "pk": 77, "fields": { "name": "Can view certificate", "content_type": 20, "codename": "view_certificate" } }, + { "model": "auth.permission", "pk": 78, "fields": { "name": "Can add service", "content_type": 21, "codename": "add_service" } }, + { "model": "auth.permission", "pk": 79, "fields": { "name": "Can change service", "content_type": 21, "codename": "change_service" } }, + { "model": "auth.permission", "pk": 80, "fields": { "name": "Can delete service", "content_type": 21, "codename": "delete_service" } }, + { "model": "auth.permission", "pk": 81, "fields": { "name": "Can view service", "content_type": 21, "codename": "view_service" } }, + { "model": "auth.permission", "pk": 82, "fields": { "name": "Can add NLX configuration", "content_type": 22, "codename": "add_nlxconfig" } }, + { "model": "auth.permission", "pk": 83, "fields": { "name": "Can change NLX configuration", "content_type": 22, "codename": "change_nlxconfig" } }, + { "model": "auth.permission", "pk": 84, "fields": { "name": "Can delete NLX configuration", "content_type": 22, "codename": "delete_nlxconfig" } }, + { "model": "auth.permission", "pk": 85, "fields": { "name": "Can view NLX configuration", "content_type": 22, "codename": "view_nlxconfig" } }, + { "model": "auth.permission", "pk": 86, "fields": { "name": "Can add certificate", "content_type": 23, "codename": "add_certificate" } }, + { "model": "auth.permission", "pk": 87, "fields": { "name": "Can change certificate", "content_type": 23, "codename": "change_certificate" } }, + { "model": "auth.permission", "pk": 88, "fields": { "name": "Can delete certificate", "content_type": 23, "codename": "delete_certificate" } }, + { "model": "auth.permission", "pk": 89, "fields": { "name": "Can view certificate", "content_type": 23, "codename": "view_certificate" } }, + { "model": "auth.permission", "pk": 90, "fields": { "name": "Can add Notificatiescomponentconfiguratie", "content_type": 24, "codename": "add_notificationsconfig" } }, + { "model": "auth.permission", "pk": 91, "fields": { "name": "Can change Notificatiescomponentconfiguratie", "content_type": 24, "codename": "change_notificationsconfig" } }, + { "model": "auth.permission", "pk": 92, "fields": { "name": "Can delete Notificatiescomponentconfiguratie", "content_type": 24, "codename": "delete_notificationsconfig" } }, + { "model": "auth.permission", "pk": 93, "fields": { "name": "Can view Notificatiescomponentconfiguratie", "content_type": 24, "codename": "view_notificationsconfig" } }, + { "model": "auth.permission", "pk": 94, "fields": { "name": "Can add Webhook subscription", "content_type": 25, "codename": "add_subscription" } }, + { "model": "auth.permission", "pk": 95, "fields": { "name": "Can change Webhook subscription", "content_type": 25, "codename": "change_subscription" } }, + { "model": "auth.permission", "pk": 96, "fields": { "name": "Can delete Webhook subscription", "content_type": 25, "codename": "delete_subscription" } }, + { "model": "auth.permission", "pk": 97, "fields": { "name": "Can view Webhook subscription", "content_type": 25, "codename": "view_subscription" } }, + { "model": "auth.permission", "pk": 98, "fields": { "name": "Can add user", "content_type": 26, "codename": "add_user" } }, + { "model": "auth.permission", "pk": 99, "fields": { "name": "Can change user", "content_type": 26, "codename": "change_user" } }, + { "model": "auth.permission", "pk": 100, "fields": { "name": "Can delete user", "content_type": 26, "codename": "delete_user" } }, + { "model": "auth.permission", "pk": 101, "fields": { "name": "Can view user", "content_type": 26, "codename": "view_user" } }, + { "model": "auth.permission", "pk": 102, "fields": { "name": "Can add enkelvoudig informatie object", "content_type": 27, "codename": "add_enkelvoudiginformatieobject" } }, + { "model": "auth.permission", "pk": 103, "fields": { "name": "Can change enkelvoudig informatie object", "content_type": 27, "codename": "change_enkelvoudiginformatieobject" } }, + { "model": "auth.permission", "pk": 104, "fields": { "name": "Can delete enkelvoudig informatie object", "content_type": 27, "codename": "delete_enkelvoudiginformatieobject" } }, + { "model": "auth.permission", "pk": 105, "fields": { "name": "Can view enkelvoudig informatie object", "content_type": 27, "codename": "view_enkelvoudiginformatieobject" } }, + { "model": "auth.permission", "pk": 106, "fields": { "name": "Can add Oobject-informatieobject", "content_type": 28, "codename": "add_objectinformatieobject" } }, + { "model": "auth.permission", "pk": 107, "fields": { "name": "Can change Oobject-informatieobject", "content_type": 28, "codename": "change_objectinformatieobject" } }, + { "model": "auth.permission", "pk": 108, "fields": { "name": "Can delete Oobject-informatieobject", "content_type": 28, "codename": "delete_objectinformatieobject" } }, + { "model": "auth.permission", "pk": 109, "fields": { "name": "Can view Oobject-informatieobject", "content_type": 28, "codename": "view_objectinformatieobject" } }, + { "model": "auth.permission", "pk": 110, "fields": { "name": "Can add gebruiksrecht informatieobject", "content_type": 29, "codename": "add_gebruiksrechten" } }, + { "model": "auth.permission", "pk": 111, "fields": { "name": "Can change gebruiksrecht informatieobject", "content_type": 29, "codename": "change_gebruiksrechten" } }, + { "model": "auth.permission", "pk": 112, "fields": { "name": "Can delete gebruiksrecht informatieobject", "content_type": 29, "codename": "delete_gebruiksrechten" } }, + { "model": "auth.permission", "pk": 113, "fields": { "name": "Can view gebruiksrecht informatieobject", "content_type": 29, "codename": "view_gebruiksrechten" } }, + { + "model": "auth.permission", + "pk": 114, + "fields": { "name": "Can add enkelvoudig informatie object canonical", "content_type": 30, "codename": "add_enkelvoudiginformatieobjectcanonical" } + }, + { + "model": "auth.permission", + "pk": 115, + "fields": { "name": "Can change enkelvoudig informatie object canonical", "content_type": 30, "codename": "change_enkelvoudiginformatieobjectcanonical" } + }, + { + "model": "auth.permission", + "pk": 116, + "fields": { "name": "Can delete enkelvoudig informatie object canonical", "content_type": 30, "codename": "delete_enkelvoudiginformatieobjectcanonical" } + }, + { + "model": "auth.permission", + "pk": 117, + "fields": { "name": "Can view enkelvoudig informatie object canonical", "content_type": 30, "codename": "view_enkelvoudiginformatieobjectcanonical" } + }, + { "model": "auth.permission", "pk": 118, "fields": { "name": "Can add bestands deel", "content_type": 31, "codename": "add_bestandsdeel" } }, + { "model": "auth.permission", "pk": 119, "fields": { "name": "Can change bestands deel", "content_type": 31, "codename": "change_bestandsdeel" } }, + { "model": "auth.permission", "pk": 120, "fields": { "name": "Can delete bestands deel", "content_type": 31, "codename": "delete_bestandsdeel" } }, + { "model": "auth.permission", "pk": 121, "fields": { "name": "Can view bestands deel", "content_type": 31, "codename": "view_bestandsdeel" } }, + { "model": "auth.permission", "pk": 122, "fields": { "name": "Can add Verzending", "content_type": 32, "codename": "add_verzending" } }, + { "model": "auth.permission", "pk": 123, "fields": { "name": "Can change Verzending", "content_type": 32, "codename": "change_verzending" } }, + { "model": "auth.permission", "pk": 124, "fields": { "name": "Can delete Verzending", "content_type": 32, "codename": "delete_verzending" } }, + { "model": "auth.permission", "pk": 125, "fields": { "name": "Can view Verzending", "content_type": 32, "codename": "view_verzending" } }, + { + "model": "sessions.session", + "pk": "hz1qwyzlz31enn2rxlifhh6yaqa59xqb", + "fields": { + "session_data": ".eJxVjMsOwiAURP-FtSFAwAsu3fsNhPuoVA1NSrsy_rtt0oVmdnPOzFvlsi41r13mPLK6KKtOvx0WekrbAT9Ku0-aprbMI-pd0Qft-jaxvK6H-3dQS6_bGiFF5x0NlsBbF31iCdEIGDQDB_G2yBYiOTMGSBgJDURwES2HYtXnC-m_OGI:1ped6Z:wm_st1x58jIKjFIO30aDu9N_KBgbp4YakX4VtK339oo", + "expire_date": "2023-04-04T14:36:51.034Z" + } + }, + { "model": "sites.site", "pk": 1, "fields": { "domain": "drc.local:8000", "name": "drc.local:8000" } }, + { + "model": "admin.logentry", + "pk": 2, + "fields": { + "action_time": "2023-03-21T14:42:51.534Z", + "user": 1, + "content_type": 21, + "object_id": "1", + "object_repr": "[NRC (Notifications)] NRC", + "action_flag": 1, + "change_message": "[{\"added\": {}}]" + } + }, + { + "model": "admin.logentry", + "pk": 3, + "fields": { + "action_time": "2023-03-21T14:42:53.926Z", + "user": 1, + "content_type": 24, + "object_id": "1", + "object_repr": "Notifications API configuration (http://open-notificaties.local:8000/api/v1/)", + "action_flag": 2, + "change_message": "[{\"changed\": {\"fields\": [\"Notifications api service\"]}}]" + } + }, + { + "model": "axes.accesslog", + "pk": 2, + "fields": { + "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36", + "ip_address": "10.201.0.1", + "username": "admin", + "http_accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", + "path_info": "/admin/login/", + "attempt_time": "2023-03-21T14:36:51.028Z", + "logout_time": null + } + }, + { "model": "vng_api_common.jwtsecret", "pk": 1, "fields": { "identifier": "drc_api_tests", "secret": "secret" } }, + { "model": "vng_api_common.jwtsecret", "pk": 2, "fields": { "identifier": "drc_api_tests_readonly", "secret": "secret_readonly" } }, + { "model": "vng_api_common.jwtsecret", "pk": 3, "fields": { "identifier": "drc_api_tests_wrong_scope", "secret": "secret_wrong_scope" } }, + { "model": "vng_api_common.jwtsecret", "pk": 4, "fields": { "identifier": "zgw_api_tests_limited", "secret": "secret_limited" } }, + { "model": "vng_api_common.jwtsecret", "pk": 5, "fields": { "identifier": "openzaak", "secret": "openzaak" } }, + { + "model": "vng_api_common.apicredential", + "pk": 1, + "fields": { + "api_root": "http://open-notificaties.local:8000/api/v1/", + "label": "notificaties", + "client_id": "drc", + "secret": "drc", + "user_id": "drc", + "user_representation": "OpenZaak" + } + }, + { + "model": "vng_api_common.apicredential", + "pk": 2, + "fields": { + "api_root": "http://open-zaak.local:8000/zaken/api/v1/", + "label": "openzaak zaken", + "client_id": "drc", + "secret": "drc", + "user_id": "drc", + "user_representation": "OpenZaak" + } + }, + { + "model": "vng_api_common.apicredential", + "pk": 3, + "fields": { + "api_root": "http://open-zaak.local:8000/catalogi/api/v1/", + "label": "openzaak catalogi", + "client_id": "drc", + "secret": "drc", + "user_id": "drc", + "user_representation": "OpenZaak" + } + }, + { + "model": "vng_api_common.apicredential", + "pk": 4, + "fields": { + "api_root": "http://open-zaak.local:8000/besluiten/api/v1/", + "label": "openzaak besluiten", + "client_id": "drc", + "secret": "drc", + "user_id": "drc", + "user_representation": "OpenZaak" + } + }, + { + "model": "vng_api_common.apicredential", + "pk": 5, + "fields": { + "api_root": "http://open-zaak.local:8000/autorisaties/api/v1/", + "label": "openzaak autorisaties", + "client_id": "drc", + "secret": "drc", + "user_id": "drc", + "user_representation": "OpenZaak" + } + }, + { "model": "authorizations.authorizationsconfig", "pk": 1, "fields": { "api_root": "http://open-zaak.local:8000/autorisaties/api/v1/", "component": "drc" } }, + { + "model": "authorizations.applicatie", + "pk": 3, + "fields": { "uuid": "8aa37d94-f2ff-4388-b27c-ea2527458054", "client_ids": "[\"drc_api_tests\"]", "label": "drc_api_tests", "heeft_alle_autorisaties": true } + }, + { "model": "notifications.notificationsconfig", "pk": 1, "fields": { "api_root": "http://open-notificaties.local:8000/api/v1/" } }, + { + "model": "zgw_consumers.service", + "pk": 1, + "fields": { + "label": "NRC", + "oas": "http://open-notificaties.local:8000/api/v1/schema/openapi.yml", + "oas_file": "", + "api_type": "nrc", + "api_root": "http://open-notificaties.local:8000/api/v1/", + "client_id": "drc", + "secret": "drc", + "auth_type": "zgw", + "header_key": "", + "header_value": "", + "nlx": "", + "user_id": "drc", + "user_representation": "OpenZaak", + "client_certificate": null, + "server_certificate": null + } + }, + { "model": "zgw_consumers.nlxconfig", "pk": 1, "fields": { "directory": "", "outway": "", "certificate": "", "certificate_key": "" } }, + { "model": "notifications_api_common.notificationsconfig", "pk": 1, "fields": { "notifications_api_service": 1 } }, + { + "model": "accounts.user", + "pk": 1, + "fields": { + "password": "pbkdf2_sha256$260000$jbvkc9j5VrjyRibbKytHiP$TB2IJ5Ccd8oLSU8lBr/k49yyWfag26brEuDa200jeXs=", + "last_login": "2023-03-21T14:36:51.022Z", + "is_superuser": true, + "username": "admin", + "first_name": "", + "last_name": "", + "email": "admin@admin.org", + "is_staff": true, + "is_active": true, + "date_joined": "2019-12-21T14:04:19.572Z", + "groups": [], + "user_permissions": [] + } + } +] diff --git a/openzaak.json b/openzaak.json new file mode 100644 index 0000000..9c8e280 --- /dev/null +++ b/openzaak.json @@ -0,0 +1,2157 @@ +[ + { "model": "contenttypes.contenttype", "fields": { "app_label": "contenttypes", "model": "contenttype" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "auth", "model": "permission" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "auth", "model": "group" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "sessions", "model": "session" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "sites", "model": "site" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "admin_index", "model": "contenttypeproxy" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "admin_index", "model": "appgroup" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "admin_index", "model": "applink" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "admin", "model": "logentry" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "axes", "model": "accessattempt" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "axes", "model": "accesslog" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "django_db_logger", "model": "statuslog" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "vng_api_common", "model": "jwtsecret" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "vng_api_common", "model": "apicredential" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "authorizations", "model": "authorizationsconfig" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "authorizations", "model": "applicatie" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "authorizations", "model": "autorisatie" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "audittrails", "model": "audittrail" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "notifications", "model": "notificationsconfig" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "notifications", "model": "subscription" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "notifications_api_common", "model": "notificationsconfig" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "notifications_api_common", "model": "subscription" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "simple_certmanager", "model": "certificate" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zgw_consumers", "model": "certificate" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zgw_consumers", "model": "service" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zgw_consumers", "model": "nlxconfig" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "drc_cmis", "model": "cmisconfig" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "drc_cmis", "model": "urlmapping" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "mozilla_django_oidc_db", "model": "openidconnectconfig" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "accounts", "model": "user" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "autorisaties", "model": "autorisatiespec" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "zaakidentificatie" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "zaak" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "relevantezaakrelatie" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "status" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "resultaat" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "rol" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "zaakobject" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "zaakeigenschap" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "zaakkenmerk" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "zaakinformatieobject" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "klantcontact" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "zaakbesluit" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "zaakcontactmoment" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "zaakverzoek" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "buurt" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "gemeente" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "gemeentelijkeopenbareruimte" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "huishouden" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "inrichtingselement" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "kunstwerkdeel" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "maatschappelijkeactiviteit" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "openbareruimte" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "pand" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "spoorbaandeel" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "terreindeel" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "waterdeel" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "wegdeel" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "wijk" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "woonplaats" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "overige" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "terreingebouwdobject" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "wozdeelobject" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "wozwaarde" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "wozobject" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "zakelijkrecht" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "kadastraleonroerendezaak" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "zakelijkrechtheeftalsgerechtigde" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "adres" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "natuurlijkpersoon" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "nietnatuurlijkpersoon" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "vestiging" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "organisatorischeeenheid" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "medewerker" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "zaken", "model": "subverblijfbuitenland" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "besluiten", "model": "besluit" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "besluiten", "model": "besluitinformatieobject" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "documenten", "model": "enkelvoudiginformatieobjectcanonical" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "documenten", "model": "enkelvoudiginformatieobject" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "documenten", "model": "bestandsdeel" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "documenten", "model": "gebruiksrechten" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "documenten", "model": "objectinformatieobject" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "catalogi", "model": "besluittype" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "catalogi", "model": "catalogus" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "catalogi", "model": "eigenschapspecificatie" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "catalogi", "model": "eigenschap" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "catalogi", "model": "informatieobjecttype" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "catalogi", "model": "zaaktypeinformatieobjecttype" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "catalogi", "model": "zaaktypenrelatie" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "catalogi", "model": "resultaattype" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "catalogi", "model": "roltype" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "catalogi", "model": "statustype" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "catalogi", "model": "zaaktype" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "config", "model": "internalservice" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "config", "model": "featureflags" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "selectielijst", "model": "referentielijstconfig" } }, + { "model": "contenttypes.contenttype", "fields": { "app_label": "notifications_log", "model": "failednotification" } }, + { "model": "auth.permission", "fields": { "name": "Can add content type", "content_type": ["contenttypes", "contenttype"], "codename": "add_contenttype" } }, + { "model": "auth.permission", "fields": { "name": "Can change content type", "content_type": ["contenttypes", "contenttype"], "codename": "change_contenttype" } }, + { "model": "auth.permission", "fields": { "name": "Can delete content type", "content_type": ["contenttypes", "contenttype"], "codename": "delete_contenttype" } }, + { "model": "auth.permission", "fields": { "name": "Can view content type", "content_type": ["contenttypes", "contenttype"], "codename": "view_contenttype" } }, + { "model": "auth.permission", "fields": { "name": "Can add permission", "content_type": ["auth", "permission"], "codename": "add_permission" } }, + { "model": "auth.permission", "fields": { "name": "Can change permission", "content_type": ["auth", "permission"], "codename": "change_permission" } }, + { "model": "auth.permission", "fields": { "name": "Can delete permission", "content_type": ["auth", "permission"], "codename": "delete_permission" } }, + { "model": "auth.permission", "fields": { "name": "Can view permission", "content_type": ["auth", "permission"], "codename": "view_permission" } }, + { "model": "auth.permission", "fields": { "name": "Can add group", "content_type": ["auth", "group"], "codename": "add_group" } }, + { "model": "auth.permission", "fields": { "name": "Can change group", "content_type": ["auth", "group"], "codename": "change_group" } }, + { "model": "auth.permission", "fields": { "name": "Can delete group", "content_type": ["auth", "group"], "codename": "delete_group" } }, + { "model": "auth.permission", "fields": { "name": "Can view group", "content_type": ["auth", "group"], "codename": "view_group" } }, + { "model": "auth.permission", "fields": { "name": "Can add session", "content_type": ["sessions", "session"], "codename": "add_session" } }, + { "model": "auth.permission", "fields": { "name": "Can change session", "content_type": ["sessions", "session"], "codename": "change_session" } }, + { "model": "auth.permission", "fields": { "name": "Can delete session", "content_type": ["sessions", "session"], "codename": "delete_session" } }, + { "model": "auth.permission", "fields": { "name": "Can view session", "content_type": ["sessions", "session"], "codename": "view_session" } }, + { "model": "auth.permission", "fields": { "name": "Can add site", "content_type": ["sites", "site"], "codename": "add_site" } }, + { "model": "auth.permission", "fields": { "name": "Can change site", "content_type": ["sites", "site"], "codename": "change_site" } }, + { "model": "auth.permission", "fields": { "name": "Can delete site", "content_type": ["sites", "site"], "codename": "delete_site" } }, + { "model": "auth.permission", "fields": { "name": "Can view site", "content_type": ["sites", "site"], "codename": "view_site" } }, + { "model": "auth.permission", "fields": { "name": "Can add content type proxy", "content_type": ["admin_index", "contenttypeproxy"], "codename": "add_contenttypeproxy" } }, + { "model": "auth.permission", "fields": { "name": "Can change content type proxy", "content_type": ["admin_index", "contenttypeproxy"], "codename": "change_contenttypeproxy" } }, + { "model": "auth.permission", "fields": { "name": "Can delete content type proxy", "content_type": ["admin_index", "contenttypeproxy"], "codename": "delete_contenttypeproxy" } }, + { "model": "auth.permission", "fields": { "name": "Can view content type proxy", "content_type": ["admin_index", "contenttypeproxy"], "codename": "view_contenttypeproxy" } }, + { "model": "auth.permission", "fields": { "name": "Can add application group", "content_type": ["admin_index", "appgroup"], "codename": "add_appgroup" } }, + { "model": "auth.permission", "fields": { "name": "Can change application group", "content_type": ["admin_index", "appgroup"], "codename": "change_appgroup" } }, + { "model": "auth.permission", "fields": { "name": "Can delete application group", "content_type": ["admin_index", "appgroup"], "codename": "delete_appgroup" } }, + { "model": "auth.permission", "fields": { "name": "Can view application group", "content_type": ["admin_index", "appgroup"], "codename": "view_appgroup" } }, + { "model": "auth.permission", "fields": { "name": "Can add application link", "content_type": ["admin_index", "applink"], "codename": "add_applink" } }, + { "model": "auth.permission", "fields": { "name": "Can change application link", "content_type": ["admin_index", "applink"], "codename": "change_applink" } }, + { "model": "auth.permission", "fields": { "name": "Can delete application link", "content_type": ["admin_index", "applink"], "codename": "delete_applink" } }, + { "model": "auth.permission", "fields": { "name": "Can view application link", "content_type": ["admin_index", "applink"], "codename": "view_applink" } }, + { "model": "auth.permission", "fields": { "name": "Can add log entry", "content_type": ["admin", "logentry"], "codename": "add_logentry" } }, + { "model": "auth.permission", "fields": { "name": "Can change log entry", "content_type": ["admin", "logentry"], "codename": "change_logentry" } }, + { "model": "auth.permission", "fields": { "name": "Can delete log entry", "content_type": ["admin", "logentry"], "codename": "delete_logentry" } }, + { "model": "auth.permission", "fields": { "name": "Can view log entry", "content_type": ["admin", "logentry"], "codename": "view_logentry" } }, + { "model": "auth.permission", "fields": { "name": "Can add access attempt", "content_type": ["axes", "accessattempt"], "codename": "add_accessattempt" } }, + { "model": "auth.permission", "fields": { "name": "Can change access attempt", "content_type": ["axes", "accessattempt"], "codename": "change_accessattempt" } }, + { "model": "auth.permission", "fields": { "name": "Can delete access attempt", "content_type": ["axes", "accessattempt"], "codename": "delete_accessattempt" } }, + { "model": "auth.permission", "fields": { "name": "Can view access attempt", "content_type": ["axes", "accessattempt"], "codename": "view_accessattempt" } }, + { "model": "auth.permission", "fields": { "name": "Can add access log", "content_type": ["axes", "accesslog"], "codename": "add_accesslog" } }, + { "model": "auth.permission", "fields": { "name": "Can change access log", "content_type": ["axes", "accesslog"], "codename": "change_accesslog" } }, + { "model": "auth.permission", "fields": { "name": "Can delete access log", "content_type": ["axes", "accesslog"], "codename": "delete_accesslog" } }, + { "model": "auth.permission", "fields": { "name": "Can view access log", "content_type": ["axes", "accesslog"], "codename": "view_accesslog" } }, + { "model": "auth.permission", "fields": { "name": "Can add Logging", "content_type": ["django_db_logger", "statuslog"], "codename": "add_statuslog" } }, + { "model": "auth.permission", "fields": { "name": "Can change Logging", "content_type": ["django_db_logger", "statuslog"], "codename": "change_statuslog" } }, + { "model": "auth.permission", "fields": { "name": "Can delete Logging", "content_type": ["django_db_logger", "statuslog"], "codename": "delete_statuslog" } }, + { "model": "auth.permission", "fields": { "name": "Can view Logging", "content_type": ["django_db_logger", "statuslog"], "codename": "view_statuslog" } }, + { "model": "auth.permission", "fields": { "name": "Can add client credential", "content_type": ["vng_api_common", "jwtsecret"], "codename": "add_jwtsecret" } }, + { "model": "auth.permission", "fields": { "name": "Can change client credential", "content_type": ["vng_api_common", "jwtsecret"], "codename": "change_jwtsecret" } }, + { "model": "auth.permission", "fields": { "name": "Can delete client credential", "content_type": ["vng_api_common", "jwtsecret"], "codename": "delete_jwtsecret" } }, + { "model": "auth.permission", "fields": { "name": "Can view client credential", "content_type": ["vng_api_common", "jwtsecret"], "codename": "view_jwtsecret" } }, + { "model": "auth.permission", "fields": { "name": "Can add external API credential", "content_type": ["vng_api_common", "apicredential"], "codename": "add_apicredential" } }, + { + "model": "auth.permission", + "fields": { "name": "Can change external API credential", "content_type": ["vng_api_common", "apicredential"], "codename": "change_apicredential" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can delete external API credential", "content_type": ["vng_api_common", "apicredential"], "codename": "delete_apicredential" } + }, + { "model": "auth.permission", "fields": { "name": "Can view external API credential", "content_type": ["vng_api_common", "apicredential"], "codename": "view_apicredential" } }, + { + "model": "auth.permission", + "fields": { "name": "Can add Autorisatiecomponentconfiguratie", "content_type": ["authorizations", "authorizationsconfig"], "codename": "add_authorizationsconfig" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can change Autorisatiecomponentconfiguratie", "content_type": ["authorizations", "authorizationsconfig"], "codename": "change_authorizationsconfig" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can delete Autorisatiecomponentconfiguratie", "content_type": ["authorizations", "authorizationsconfig"], "codename": "delete_authorizationsconfig" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can view Autorisatiecomponentconfiguratie", "content_type": ["authorizations", "authorizationsconfig"], "codename": "view_authorizationsconfig" } + }, + { "model": "auth.permission", "fields": { "name": "Can add applicatie", "content_type": ["authorizations", "applicatie"], "codename": "add_applicatie" } }, + { "model": "auth.permission", "fields": { "name": "Can change applicatie", "content_type": ["authorizations", "applicatie"], "codename": "change_applicatie" } }, + { "model": "auth.permission", "fields": { "name": "Can delete applicatie", "content_type": ["authorizations", "applicatie"], "codename": "delete_applicatie" } }, + { "model": "auth.permission", "fields": { "name": "Can view applicatie", "content_type": ["authorizations", "applicatie"], "codename": "view_applicatie" } }, + { "model": "auth.permission", "fields": { "name": "Can add autorisatie", "content_type": ["authorizations", "autorisatie"], "codename": "add_autorisatie" } }, + { "model": "auth.permission", "fields": { "name": "Can change autorisatie", "content_type": ["authorizations", "autorisatie"], "codename": "change_autorisatie" } }, + { "model": "auth.permission", "fields": { "name": "Can delete autorisatie", "content_type": ["authorizations", "autorisatie"], "codename": "delete_autorisatie" } }, + { "model": "auth.permission", "fields": { "name": "Can view autorisatie", "content_type": ["authorizations", "autorisatie"], "codename": "view_autorisatie" } }, + { "model": "auth.permission", "fields": { "name": "Can add audit trail", "content_type": ["audittrails", "audittrail"], "codename": "add_audittrail" } }, + { "model": "auth.permission", "fields": { "name": "Can change audit trail", "content_type": ["audittrails", "audittrail"], "codename": "change_audittrail" } }, + { "model": "auth.permission", "fields": { "name": "Can delete audit trail", "content_type": ["audittrails", "audittrail"], "codename": "delete_audittrail" } }, + { "model": "auth.permission", "fields": { "name": "Can view audit trail", "content_type": ["audittrails", "audittrail"], "codename": "view_audittrail" } }, + { + "model": "auth.permission", + "fields": { "name": "Can add Notificatiescomponentconfiguratie", "content_type": ["notifications", "notificationsconfig"], "codename": "add_notificationsconfig" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can change Notificatiescomponentconfiguratie", "content_type": ["notifications", "notificationsconfig"], "codename": "change_notificationsconfig" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can delete Notificatiescomponentconfiguratie", "content_type": ["notifications", "notificationsconfig"], "codename": "delete_notificationsconfig" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can view Notificatiescomponentconfiguratie", "content_type": ["notifications", "notificationsconfig"], "codename": "view_notificationsconfig" } + }, + { "model": "auth.permission", "fields": { "name": "Can add Webhook subscription", "content_type": ["notifications", "subscription"], "codename": "add_subscription" } }, + { "model": "auth.permission", "fields": { "name": "Can change Webhook subscription", "content_type": ["notifications", "subscription"], "codename": "change_subscription" } }, + { "model": "auth.permission", "fields": { "name": "Can delete Webhook subscription", "content_type": ["notifications", "subscription"], "codename": "delete_subscription" } }, + { "model": "auth.permission", "fields": { "name": "Can view Webhook subscription", "content_type": ["notifications", "subscription"], "codename": "view_subscription" } }, + { + "model": "auth.permission", + "fields": { "name": "Can add Notificatiescomponentconfiguratie", "content_type": ["notifications_api_common", "notificationsconfig"], "codename": "add_notificationsconfig" } + }, + { + "model": "auth.permission", + "fields": { + "name": "Can change Notificatiescomponentconfiguratie", + "content_type": ["notifications_api_common", "notificationsconfig"], + "codename": "change_notificationsconfig" + } + }, + { + "model": "auth.permission", + "fields": { + "name": "Can delete Notificatiescomponentconfiguratie", + "content_type": ["notifications_api_common", "notificationsconfig"], + "codename": "delete_notificationsconfig" + } + }, + { + "model": "auth.permission", + "fields": { "name": "Can view Notificatiescomponentconfiguratie", "content_type": ["notifications_api_common", "notificationsconfig"], "codename": "view_notificationsconfig" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can add Webhook subscription", "content_type": ["notifications_api_common", "subscription"], "codename": "add_subscription" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can change Webhook subscription", "content_type": ["notifications_api_common", "subscription"], "codename": "change_subscription" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can delete Webhook subscription", "content_type": ["notifications_api_common", "subscription"], "codename": "delete_subscription" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can view Webhook subscription", "content_type": ["notifications_api_common", "subscription"], "codename": "view_subscription" } + }, + { "model": "auth.permission", "fields": { "name": "Can add certificate", "content_type": ["simple_certmanager", "certificate"], "codename": "add_certificate" } }, + { "model": "auth.permission", "fields": { "name": "Can change certificate", "content_type": ["simple_certmanager", "certificate"], "codename": "change_certificate" } }, + { "model": "auth.permission", "fields": { "name": "Can delete certificate", "content_type": ["simple_certmanager", "certificate"], "codename": "delete_certificate" } }, + { "model": "auth.permission", "fields": { "name": "Can view certificate", "content_type": ["simple_certmanager", "certificate"], "codename": "view_certificate" } }, + { "model": "auth.permission", "fields": { "name": "Can add certificate", "content_type": ["zgw_consumers", "certificate"], "codename": "add_certificate" } }, + { "model": "auth.permission", "fields": { "name": "Can change certificate", "content_type": ["zgw_consumers", "certificate"], "codename": "change_certificate" } }, + { "model": "auth.permission", "fields": { "name": "Can delete certificate", "content_type": ["zgw_consumers", "certificate"], "codename": "delete_certificate" } }, + { "model": "auth.permission", "fields": { "name": "Can view certificate", "content_type": ["zgw_consumers", "certificate"], "codename": "view_certificate" } }, + { "model": "auth.permission", "fields": { "name": "Can add service", "content_type": ["zgw_consumers", "service"], "codename": "add_service" } }, + { "model": "auth.permission", "fields": { "name": "Can change service", "content_type": ["zgw_consumers", "service"], "codename": "change_service" } }, + { "model": "auth.permission", "fields": { "name": "Can delete service", "content_type": ["zgw_consumers", "service"], "codename": "delete_service" } }, + { "model": "auth.permission", "fields": { "name": "Can view service", "content_type": ["zgw_consumers", "service"], "codename": "view_service" } }, + { "model": "auth.permission", "fields": { "name": "Can add NLX configuration", "content_type": ["zgw_consumers", "nlxconfig"], "codename": "add_nlxconfig" } }, + { "model": "auth.permission", "fields": { "name": "Can change NLX configuration", "content_type": ["zgw_consumers", "nlxconfig"], "codename": "change_nlxconfig" } }, + { "model": "auth.permission", "fields": { "name": "Can delete NLX configuration", "content_type": ["zgw_consumers", "nlxconfig"], "codename": "delete_nlxconfig" } }, + { "model": "auth.permission", "fields": { "name": "Can view NLX configuration", "content_type": ["zgw_consumers", "nlxconfig"], "codename": "view_nlxconfig" } }, + { "model": "auth.permission", "fields": { "name": "Can add CMIS Configuration", "content_type": ["drc_cmis", "cmisconfig"], "codename": "add_cmisconfig" } }, + { "model": "auth.permission", "fields": { "name": "Can change CMIS Configuration", "content_type": ["drc_cmis", "cmisconfig"], "codename": "change_cmisconfig" } }, + { "model": "auth.permission", "fields": { "name": "Can delete CMIS Configuration", "content_type": ["drc_cmis", "cmisconfig"], "codename": "delete_cmisconfig" } }, + { "model": "auth.permission", "fields": { "name": "Can view CMIS Configuration", "content_type": ["drc_cmis", "cmisconfig"], "codename": "view_cmisconfig" } }, + { "model": "auth.permission", "fields": { "name": "Can add URL mapping", "content_type": ["drc_cmis", "urlmapping"], "codename": "add_urlmapping" } }, + { "model": "auth.permission", "fields": { "name": "Can change URL mapping", "content_type": ["drc_cmis", "urlmapping"], "codename": "change_urlmapping" } }, + { "model": "auth.permission", "fields": { "name": "Can delete URL mapping", "content_type": ["drc_cmis", "urlmapping"], "codename": "delete_urlmapping" } }, + { "model": "auth.permission", "fields": { "name": "Can view URL mapping", "content_type": ["drc_cmis", "urlmapping"], "codename": "view_urlmapping" } }, + { + "model": "auth.permission", + "fields": { "name": "Can add OpenID Connect configuration", "content_type": ["mozilla_django_oidc_db", "openidconnectconfig"], "codename": "add_openidconnectconfig" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can change OpenID Connect configuration", "content_type": ["mozilla_django_oidc_db", "openidconnectconfig"], "codename": "change_openidconnectconfig" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can delete OpenID Connect configuration", "content_type": ["mozilla_django_oidc_db", "openidconnectconfig"], "codename": "delete_openidconnectconfig" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can view OpenID Connect configuration", "content_type": ["mozilla_django_oidc_db", "openidconnectconfig"], "codename": "view_openidconnectconfig" } + }, + { "model": "auth.permission", "fields": { "name": "Can add user", "content_type": ["accounts", "user"], "codename": "add_user" } }, + { "model": "auth.permission", "fields": { "name": "Can change user", "content_type": ["accounts", "user"], "codename": "change_user" } }, + { "model": "auth.permission", "fields": { "name": "Can delete user", "content_type": ["accounts", "user"], "codename": "delete_user" } }, + { "model": "auth.permission", "fields": { "name": "Can view user", "content_type": ["accounts", "user"], "codename": "view_user" } }, + { "model": "auth.permission", "fields": { "name": "Can add autorisatiespec", "content_type": ["autorisaties", "autorisatiespec"], "codename": "add_autorisatiespec" } }, + { "model": "auth.permission", "fields": { "name": "Can change autorisatiespec", "content_type": ["autorisaties", "autorisatiespec"], "codename": "change_autorisatiespec" } }, + { "model": "auth.permission", "fields": { "name": "Can delete autorisatiespec", "content_type": ["autorisaties", "autorisatiespec"], "codename": "delete_autorisatiespec" } }, + { "model": "auth.permission", "fields": { "name": "Can view autorisatiespec", "content_type": ["autorisaties", "autorisatiespec"], "codename": "view_autorisatiespec" } }, + { "model": "auth.permission", "fields": { "name": "Can add zaak identification", "content_type": ["zaken", "zaakidentificatie"], "codename": "add_zaakidentificatie" } }, + { "model": "auth.permission", "fields": { "name": "Can change zaak identification", "content_type": ["zaken", "zaakidentificatie"], "codename": "change_zaakidentificatie" } }, + { "model": "auth.permission", "fields": { "name": "Can delete zaak identification", "content_type": ["zaken", "zaakidentificatie"], "codename": "delete_zaakidentificatie" } }, + { "model": "auth.permission", "fields": { "name": "Can view zaak identification", "content_type": ["zaken", "zaakidentificatie"], "codename": "view_zaakidentificatie" } }, + { "model": "auth.permission", "fields": { "name": "Can add zaak", "content_type": ["zaken", "zaak"], "codename": "add_zaak" } }, + { "model": "auth.permission", "fields": { "name": "Can change zaak", "content_type": ["zaken", "zaak"], "codename": "change_zaak" } }, + { "model": "auth.permission", "fields": { "name": "Can delete zaak", "content_type": ["zaken", "zaak"], "codename": "delete_zaak" } }, + { "model": "auth.permission", "fields": { "name": "Can view zaak", "content_type": ["zaken", "zaak"], "codename": "view_zaak" } }, + { "model": "auth.permission", "fields": { "name": "Can add relevante zaak relatie", "content_type": ["zaken", "relevantezaakrelatie"], "codename": "add_relevantezaakrelatie" } }, + { + "model": "auth.permission", + "fields": { "name": "Can change relevante zaak relatie", "content_type": ["zaken", "relevantezaakrelatie"], "codename": "change_relevantezaakrelatie" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can delete relevante zaak relatie", "content_type": ["zaken", "relevantezaakrelatie"], "codename": "delete_relevantezaakrelatie" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can view relevante zaak relatie", "content_type": ["zaken", "relevantezaakrelatie"], "codename": "view_relevantezaakrelatie" } + }, + { "model": "auth.permission", "fields": { "name": "Can add status", "content_type": ["zaken", "status"], "codename": "add_status" } }, + { "model": "auth.permission", "fields": { "name": "Can change status", "content_type": ["zaken", "status"], "codename": "change_status" } }, + { "model": "auth.permission", "fields": { "name": "Can delete status", "content_type": ["zaken", "status"], "codename": "delete_status" } }, + { "model": "auth.permission", "fields": { "name": "Can view status", "content_type": ["zaken", "status"], "codename": "view_status" } }, + { "model": "auth.permission", "fields": { "name": "Can add resultaat", "content_type": ["zaken", "resultaat"], "codename": "add_resultaat" } }, + { "model": "auth.permission", "fields": { "name": "Can change resultaat", "content_type": ["zaken", "resultaat"], "codename": "change_resultaat" } }, + { "model": "auth.permission", "fields": { "name": "Can delete resultaat", "content_type": ["zaken", "resultaat"], "codename": "delete_resultaat" } }, + { "model": "auth.permission", "fields": { "name": "Can view resultaat", "content_type": ["zaken", "resultaat"], "codename": "view_resultaat" } }, + { "model": "auth.permission", "fields": { "name": "Can add Rol", "content_type": ["zaken", "rol"], "codename": "add_rol" } }, + { "model": "auth.permission", "fields": { "name": "Can change Rol", "content_type": ["zaken", "rol"], "codename": "change_rol" } }, + { "model": "auth.permission", "fields": { "name": "Can delete Rol", "content_type": ["zaken", "rol"], "codename": "delete_rol" } }, + { "model": "auth.permission", "fields": { "name": "Can view Rol", "content_type": ["zaken", "rol"], "codename": "view_rol" } }, + { "model": "auth.permission", "fields": { "name": "Can add zaakobject", "content_type": ["zaken", "zaakobject"], "codename": "add_zaakobject" } }, + { "model": "auth.permission", "fields": { "name": "Can change zaakobject", "content_type": ["zaken", "zaakobject"], "codename": "change_zaakobject" } }, + { "model": "auth.permission", "fields": { "name": "Can delete zaakobject", "content_type": ["zaken", "zaakobject"], "codename": "delete_zaakobject" } }, + { "model": "auth.permission", "fields": { "name": "Can view zaakobject", "content_type": ["zaken", "zaakobject"], "codename": "view_zaakobject" } }, + { "model": "auth.permission", "fields": { "name": "Can add zaakeigenschap", "content_type": ["zaken", "zaakeigenschap"], "codename": "add_zaakeigenschap" } }, + { "model": "auth.permission", "fields": { "name": "Can change zaakeigenschap", "content_type": ["zaken", "zaakeigenschap"], "codename": "change_zaakeigenschap" } }, + { "model": "auth.permission", "fields": { "name": "Can delete zaakeigenschap", "content_type": ["zaken", "zaakeigenschap"], "codename": "delete_zaakeigenschap" } }, + { "model": "auth.permission", "fields": { "name": "Can view zaakeigenschap", "content_type": ["zaken", "zaakeigenschap"], "codename": "view_zaakeigenschap" } }, + { "model": "auth.permission", "fields": { "name": "Can add zaak kenmerk", "content_type": ["zaken", "zaakkenmerk"], "codename": "add_zaakkenmerk" } }, + { "model": "auth.permission", "fields": { "name": "Can change zaak kenmerk", "content_type": ["zaken", "zaakkenmerk"], "codename": "change_zaakkenmerk" } }, + { "model": "auth.permission", "fields": { "name": "Can delete zaak kenmerk", "content_type": ["zaken", "zaakkenmerk"], "codename": "delete_zaakkenmerk" } }, + { "model": "auth.permission", "fields": { "name": "Can view zaak kenmerk", "content_type": ["zaken", "zaakkenmerk"], "codename": "view_zaakkenmerk" } }, + { "model": "auth.permission", "fields": { "name": "Can add zaakinformatieobject", "content_type": ["zaken", "zaakinformatieobject"], "codename": "add_zaakinformatieobject" } }, + { + "model": "auth.permission", + "fields": { "name": "Can change zaakinformatieobject", "content_type": ["zaken", "zaakinformatieobject"], "codename": "change_zaakinformatieobject" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can delete zaakinformatieobject", "content_type": ["zaken", "zaakinformatieobject"], "codename": "delete_zaakinformatieobject" } + }, + { "model": "auth.permission", "fields": { "name": "Can view zaakinformatieobject", "content_type": ["zaken", "zaakinformatieobject"], "codename": "view_zaakinformatieobject" } }, + { "model": "auth.permission", "fields": { "name": "Can add klantcontact", "content_type": ["zaken", "klantcontact"], "codename": "add_klantcontact" } }, + { "model": "auth.permission", "fields": { "name": "Can change klantcontact", "content_type": ["zaken", "klantcontact"], "codename": "change_klantcontact" } }, + { "model": "auth.permission", "fields": { "name": "Can delete klantcontact", "content_type": ["zaken", "klantcontact"], "codename": "delete_klantcontact" } }, + { "model": "auth.permission", "fields": { "name": "Can view klantcontact", "content_type": ["zaken", "klantcontact"], "codename": "view_klantcontact" } }, + { "model": "auth.permission", "fields": { "name": "Can add zaakbesluit", "content_type": ["zaken", "zaakbesluit"], "codename": "add_zaakbesluit" } }, + { "model": "auth.permission", "fields": { "name": "Can change zaakbesluit", "content_type": ["zaken", "zaakbesluit"], "codename": "change_zaakbesluit" } }, + { "model": "auth.permission", "fields": { "name": "Can delete zaakbesluit", "content_type": ["zaken", "zaakbesluit"], "codename": "delete_zaakbesluit" } }, + { "model": "auth.permission", "fields": { "name": "Can view zaakbesluit", "content_type": ["zaken", "zaakbesluit"], "codename": "view_zaakbesluit" } }, + { "model": "auth.permission", "fields": { "name": "Can add contactmoment", "content_type": ["zaken", "zaakcontactmoment"], "codename": "add_zaakcontactmoment" } }, + { "model": "auth.permission", "fields": { "name": "Can change contactmoment", "content_type": ["zaken", "zaakcontactmoment"], "codename": "change_zaakcontactmoment" } }, + { "model": "auth.permission", "fields": { "name": "Can delete contactmoment", "content_type": ["zaken", "zaakcontactmoment"], "codename": "delete_zaakcontactmoment" } }, + { "model": "auth.permission", "fields": { "name": "Can view contactmoment", "content_type": ["zaken", "zaakcontactmoment"], "codename": "view_zaakcontactmoment" } }, + { "model": "auth.permission", "fields": { "name": "Can add zaakverzoek", "content_type": ["zaken", "zaakverzoek"], "codename": "add_zaakverzoek" } }, + { "model": "auth.permission", "fields": { "name": "Can change zaakverzoek", "content_type": ["zaken", "zaakverzoek"], "codename": "change_zaakverzoek" } }, + { "model": "auth.permission", "fields": { "name": "Can delete zaakverzoek", "content_type": ["zaken", "zaakverzoek"], "codename": "delete_zaakverzoek" } }, + { "model": "auth.permission", "fields": { "name": "Can view zaakverzoek", "content_type": ["zaken", "zaakverzoek"], "codename": "view_zaakverzoek" } }, + { "model": "auth.permission", "fields": { "name": "Can add buurt", "content_type": ["zaken", "buurt"], "codename": "add_buurt" } }, + { "model": "auth.permission", "fields": { "name": "Can change buurt", "content_type": ["zaken", "buurt"], "codename": "change_buurt" } }, + { "model": "auth.permission", "fields": { "name": "Can delete buurt", "content_type": ["zaken", "buurt"], "codename": "delete_buurt" } }, + { "model": "auth.permission", "fields": { "name": "Can view buurt", "content_type": ["zaken", "buurt"], "codename": "view_buurt" } }, + { "model": "auth.permission", "fields": { "name": "Can add gemeente", "content_type": ["zaken", "gemeente"], "codename": "add_gemeente" } }, + { "model": "auth.permission", "fields": { "name": "Can change gemeente", "content_type": ["zaken", "gemeente"], "codename": "change_gemeente" } }, + { "model": "auth.permission", "fields": { "name": "Can delete gemeente", "content_type": ["zaken", "gemeente"], "codename": "delete_gemeente" } }, + { "model": "auth.permission", "fields": { "name": "Can view gemeente", "content_type": ["zaken", "gemeente"], "codename": "view_gemeente" } }, + { + "model": "auth.permission", + "fields": { "name": "Can add gemeentelijke openbare ruimte", "content_type": ["zaken", "gemeentelijkeopenbareruimte"], "codename": "add_gemeentelijkeopenbareruimte" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can change gemeentelijke openbare ruimte", "content_type": ["zaken", "gemeentelijkeopenbareruimte"], "codename": "change_gemeentelijkeopenbareruimte" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can delete gemeentelijke openbare ruimte", "content_type": ["zaken", "gemeentelijkeopenbareruimte"], "codename": "delete_gemeentelijkeopenbareruimte" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can view gemeentelijke openbare ruimte", "content_type": ["zaken", "gemeentelijkeopenbareruimte"], "codename": "view_gemeentelijkeopenbareruimte" } + }, + { "model": "auth.permission", "fields": { "name": "Can add huishouden", "content_type": ["zaken", "huishouden"], "codename": "add_huishouden" } }, + { "model": "auth.permission", "fields": { "name": "Can change huishouden", "content_type": ["zaken", "huishouden"], "codename": "change_huishouden" } }, + { "model": "auth.permission", "fields": { "name": "Can delete huishouden", "content_type": ["zaken", "huishouden"], "codename": "delete_huishouden" } }, + { "model": "auth.permission", "fields": { "name": "Can view huishouden", "content_type": ["zaken", "huishouden"], "codename": "view_huishouden" } }, + { "model": "auth.permission", "fields": { "name": "Can add inrichtingselement", "content_type": ["zaken", "inrichtingselement"], "codename": "add_inrichtingselement" } }, + { "model": "auth.permission", "fields": { "name": "Can change inrichtingselement", "content_type": ["zaken", "inrichtingselement"], "codename": "change_inrichtingselement" } }, + { "model": "auth.permission", "fields": { "name": "Can delete inrichtingselement", "content_type": ["zaken", "inrichtingselement"], "codename": "delete_inrichtingselement" } }, + { "model": "auth.permission", "fields": { "name": "Can view inrichtingselement", "content_type": ["zaken", "inrichtingselement"], "codename": "view_inrichtingselement" } }, + { "model": "auth.permission", "fields": { "name": "Can add kunstwerkdeel", "content_type": ["zaken", "kunstwerkdeel"], "codename": "add_kunstwerkdeel" } }, + { "model": "auth.permission", "fields": { "name": "Can change kunstwerkdeel", "content_type": ["zaken", "kunstwerkdeel"], "codename": "change_kunstwerkdeel" } }, + { "model": "auth.permission", "fields": { "name": "Can delete kunstwerkdeel", "content_type": ["zaken", "kunstwerkdeel"], "codename": "delete_kunstwerkdeel" } }, + { "model": "auth.permission", "fields": { "name": "Can view kunstwerkdeel", "content_type": ["zaken", "kunstwerkdeel"], "codename": "view_kunstwerkdeel" } }, + { + "model": "auth.permission", + "fields": { "name": "Can add maatschappelijke activiteit", "content_type": ["zaken", "maatschappelijkeactiviteit"], "codename": "add_maatschappelijkeactiviteit" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can change maatschappelijke activiteit", "content_type": ["zaken", "maatschappelijkeactiviteit"], "codename": "change_maatschappelijkeactiviteit" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can delete maatschappelijke activiteit", "content_type": ["zaken", "maatschappelijkeactiviteit"], "codename": "delete_maatschappelijkeactiviteit" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can view maatschappelijke activiteit", "content_type": ["zaken", "maatschappelijkeactiviteit"], "codename": "view_maatschappelijkeactiviteit" } + }, + { "model": "auth.permission", "fields": { "name": "Can add openbare ruimte", "content_type": ["zaken", "openbareruimte"], "codename": "add_openbareruimte" } }, + { "model": "auth.permission", "fields": { "name": "Can change openbare ruimte", "content_type": ["zaken", "openbareruimte"], "codename": "change_openbareruimte" } }, + { "model": "auth.permission", "fields": { "name": "Can delete openbare ruimte", "content_type": ["zaken", "openbareruimte"], "codename": "delete_openbareruimte" } }, + { "model": "auth.permission", "fields": { "name": "Can view openbare ruimte", "content_type": ["zaken", "openbareruimte"], "codename": "view_openbareruimte" } }, + { "model": "auth.permission", "fields": { "name": "Can add pand", "content_type": ["zaken", "pand"], "codename": "add_pand" } }, + { "model": "auth.permission", "fields": { "name": "Can change pand", "content_type": ["zaken", "pand"], "codename": "change_pand" } }, + { "model": "auth.permission", "fields": { "name": "Can delete pand", "content_type": ["zaken", "pand"], "codename": "delete_pand" } }, + { "model": "auth.permission", "fields": { "name": "Can view pand", "content_type": ["zaken", "pand"], "codename": "view_pand" } }, + { "model": "auth.permission", "fields": { "name": "Can add spoorbaandeel", "content_type": ["zaken", "spoorbaandeel"], "codename": "add_spoorbaandeel" } }, + { "model": "auth.permission", "fields": { "name": "Can change spoorbaandeel", "content_type": ["zaken", "spoorbaandeel"], "codename": "change_spoorbaandeel" } }, + { "model": "auth.permission", "fields": { "name": "Can delete spoorbaandeel", "content_type": ["zaken", "spoorbaandeel"], "codename": "delete_spoorbaandeel" } }, + { "model": "auth.permission", "fields": { "name": "Can view spoorbaandeel", "content_type": ["zaken", "spoorbaandeel"], "codename": "view_spoorbaandeel" } }, + { "model": "auth.permission", "fields": { "name": "Can add terreindeel", "content_type": ["zaken", "terreindeel"], "codename": "add_terreindeel" } }, + { "model": "auth.permission", "fields": { "name": "Can change terreindeel", "content_type": ["zaken", "terreindeel"], "codename": "change_terreindeel" } }, + { "model": "auth.permission", "fields": { "name": "Can delete terreindeel", "content_type": ["zaken", "terreindeel"], "codename": "delete_terreindeel" } }, + { "model": "auth.permission", "fields": { "name": "Can view terreindeel", "content_type": ["zaken", "terreindeel"], "codename": "view_terreindeel" } }, + { "model": "auth.permission", "fields": { "name": "Can add waterdeel", "content_type": ["zaken", "waterdeel"], "codename": "add_waterdeel" } }, + { "model": "auth.permission", "fields": { "name": "Can change waterdeel", "content_type": ["zaken", "waterdeel"], "codename": "change_waterdeel" } }, + { "model": "auth.permission", "fields": { "name": "Can delete waterdeel", "content_type": ["zaken", "waterdeel"], "codename": "delete_waterdeel" } }, + { "model": "auth.permission", "fields": { "name": "Can view waterdeel", "content_type": ["zaken", "waterdeel"], "codename": "view_waterdeel" } }, + { "model": "auth.permission", "fields": { "name": "Can add wegdeel", "content_type": ["zaken", "wegdeel"], "codename": "add_wegdeel" } }, + { "model": "auth.permission", "fields": { "name": "Can change wegdeel", "content_type": ["zaken", "wegdeel"], "codename": "change_wegdeel" } }, + { "model": "auth.permission", "fields": { "name": "Can delete wegdeel", "content_type": ["zaken", "wegdeel"], "codename": "delete_wegdeel" } }, + { "model": "auth.permission", "fields": { "name": "Can view wegdeel", "content_type": ["zaken", "wegdeel"], "codename": "view_wegdeel" } }, + { "model": "auth.permission", "fields": { "name": "Can add wijk", "content_type": ["zaken", "wijk"], "codename": "add_wijk" } }, + { "model": "auth.permission", "fields": { "name": "Can change wijk", "content_type": ["zaken", "wijk"], "codename": "change_wijk" } }, + { "model": "auth.permission", "fields": { "name": "Can delete wijk", "content_type": ["zaken", "wijk"], "codename": "delete_wijk" } }, + { "model": "auth.permission", "fields": { "name": "Can view wijk", "content_type": ["zaken", "wijk"], "codename": "view_wijk" } }, + { "model": "auth.permission", "fields": { "name": "Can add woonplaats", "content_type": ["zaken", "woonplaats"], "codename": "add_woonplaats" } }, + { "model": "auth.permission", "fields": { "name": "Can change woonplaats", "content_type": ["zaken", "woonplaats"], "codename": "change_woonplaats" } }, + { "model": "auth.permission", "fields": { "name": "Can delete woonplaats", "content_type": ["zaken", "woonplaats"], "codename": "delete_woonplaats" } }, + { "model": "auth.permission", "fields": { "name": "Can view woonplaats", "content_type": ["zaken", "woonplaats"], "codename": "view_woonplaats" } }, + { "model": "auth.permission", "fields": { "name": "Can add overig", "content_type": ["zaken", "overige"], "codename": "add_overige" } }, + { "model": "auth.permission", "fields": { "name": "Can change overig", "content_type": ["zaken", "overige"], "codename": "change_overige" } }, + { "model": "auth.permission", "fields": { "name": "Can delete overig", "content_type": ["zaken", "overige"], "codename": "delete_overige" } }, + { "model": "auth.permission", "fields": { "name": "Can view overig", "content_type": ["zaken", "overige"], "codename": "view_overige" } }, + { "model": "auth.permission", "fields": { "name": "Can add terreingebouwd object", "content_type": ["zaken", "terreingebouwdobject"], "codename": "add_terreingebouwdobject" } }, + { + "model": "auth.permission", + "fields": { "name": "Can change terreingebouwd object", "content_type": ["zaken", "terreingebouwdobject"], "codename": "change_terreingebouwdobject" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can delete terreingebouwd object", "content_type": ["zaken", "terreingebouwdobject"], "codename": "delete_terreingebouwdobject" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can view terreingebouwd object", "content_type": ["zaken", "terreingebouwdobject"], "codename": "view_terreingebouwdobject" } + }, + { "model": "auth.permission", "fields": { "name": "Can add WOZ-deelobject", "content_type": ["zaken", "wozdeelobject"], "codename": "add_wozdeelobject" } }, + { "model": "auth.permission", "fields": { "name": "Can change WOZ-deelobject", "content_type": ["zaken", "wozdeelobject"], "codename": "change_wozdeelobject" } }, + { "model": "auth.permission", "fields": { "name": "Can delete WOZ-deelobject", "content_type": ["zaken", "wozdeelobject"], "codename": "delete_wozdeelobject" } }, + { "model": "auth.permission", "fields": { "name": "Can view WOZ-deelobject", "content_type": ["zaken", "wozdeelobject"], "codename": "view_wozdeelobject" } }, + { "model": "auth.permission", "fields": { "name": "Can add WOZ-waarde", "content_type": ["zaken", "wozwaarde"], "codename": "add_wozwaarde" } }, + { "model": "auth.permission", "fields": { "name": "Can change WOZ-waarde", "content_type": ["zaken", "wozwaarde"], "codename": "change_wozwaarde" } }, + { "model": "auth.permission", "fields": { "name": "Can delete WOZ-waarde", "content_type": ["zaken", "wozwaarde"], "codename": "delete_wozwaarde" } }, + { "model": "auth.permission", "fields": { "name": "Can view WOZ-waarde", "content_type": ["zaken", "wozwaarde"], "codename": "view_wozwaarde" } }, + { "model": "auth.permission", "fields": { "name": "Can add WOZ-object", "content_type": ["zaken", "wozobject"], "codename": "add_wozobject" } }, + { "model": "auth.permission", "fields": { "name": "Can change WOZ-object", "content_type": ["zaken", "wozobject"], "codename": "change_wozobject" } }, + { "model": "auth.permission", "fields": { "name": "Can delete WOZ-object", "content_type": ["zaken", "wozobject"], "codename": "delete_wozobject" } }, + { "model": "auth.permission", "fields": { "name": "Can view WOZ-object", "content_type": ["zaken", "wozobject"], "codename": "view_wozobject" } }, + { "model": "auth.permission", "fields": { "name": "Can add zakelijk recht", "content_type": ["zaken", "zakelijkrecht"], "codename": "add_zakelijkrecht" } }, + { "model": "auth.permission", "fields": { "name": "Can change zakelijk recht", "content_type": ["zaken", "zakelijkrecht"], "codename": "change_zakelijkrecht" } }, + { "model": "auth.permission", "fields": { "name": "Can delete zakelijk recht", "content_type": ["zaken", "zakelijkrecht"], "codename": "delete_zakelijkrecht" } }, + { "model": "auth.permission", "fields": { "name": "Can view zakelijk recht", "content_type": ["zaken", "zakelijkrecht"], "codename": "view_zakelijkrecht" } }, + { + "model": "auth.permission", + "fields": { "name": "Can add kadastrale onroerende zaak", "content_type": ["zaken", "kadastraleonroerendezaak"], "codename": "add_kadastraleonroerendezaak" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can change kadastrale onroerende zaak", "content_type": ["zaken", "kadastraleonroerendezaak"], "codename": "change_kadastraleonroerendezaak" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can delete kadastrale onroerende zaak", "content_type": ["zaken", "kadastraleonroerendezaak"], "codename": "delete_kadastraleonroerendezaak" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can view kadastrale onroerende zaak", "content_type": ["zaken", "kadastraleonroerendezaak"], "codename": "view_kadastraleonroerendezaak" } + }, + { + "model": "auth.permission", + "fields": { + "name": "Can add zakelijk recht heeft als gerechtigde", + "content_type": ["zaken", "zakelijkrechtheeftalsgerechtigde"], + "codename": "add_zakelijkrechtheeftalsgerechtigde" + } + }, + { + "model": "auth.permission", + "fields": { + "name": "Can change zakelijk recht heeft als gerechtigde", + "content_type": ["zaken", "zakelijkrechtheeftalsgerechtigde"], + "codename": "change_zakelijkrechtheeftalsgerechtigde" + } + }, + { + "model": "auth.permission", + "fields": { + "name": "Can delete zakelijk recht heeft als gerechtigde", + "content_type": ["zaken", "zakelijkrechtheeftalsgerechtigde"], + "codename": "delete_zakelijkrechtheeftalsgerechtigde" + } + }, + { + "model": "auth.permission", + "fields": { + "name": "Can view zakelijk recht heeft als gerechtigde", + "content_type": ["zaken", "zakelijkrechtheeftalsgerechtigde"], + "codename": "view_zakelijkrechtheeftalsgerechtigde" + } + }, + { "model": "auth.permission", "fields": { "name": "Can add adres", "content_type": ["zaken", "adres"], "codename": "add_adres" } }, + { "model": "auth.permission", "fields": { "name": "Can change adres", "content_type": ["zaken", "adres"], "codename": "change_adres" } }, + { "model": "auth.permission", "fields": { "name": "Can delete adres", "content_type": ["zaken", "adres"], "codename": "delete_adres" } }, + { "model": "auth.permission", "fields": { "name": "Can view adres", "content_type": ["zaken", "adres"], "codename": "view_adres" } }, + { "model": "auth.permission", "fields": { "name": "Can add natuurlijk persoon", "content_type": ["zaken", "natuurlijkpersoon"], "codename": "add_natuurlijkpersoon" } }, + { "model": "auth.permission", "fields": { "name": "Can change natuurlijk persoon", "content_type": ["zaken", "natuurlijkpersoon"], "codename": "change_natuurlijkpersoon" } }, + { "model": "auth.permission", "fields": { "name": "Can delete natuurlijk persoon", "content_type": ["zaken", "natuurlijkpersoon"], "codename": "delete_natuurlijkpersoon" } }, + { "model": "auth.permission", "fields": { "name": "Can view natuurlijk persoon", "content_type": ["zaken", "natuurlijkpersoon"], "codename": "view_natuurlijkpersoon" } }, + { + "model": "auth.permission", + "fields": { "name": "Can add niet-natuurlijk persoon", "content_type": ["zaken", "nietnatuurlijkpersoon"], "codename": "add_nietnatuurlijkpersoon" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can change niet-natuurlijk persoon", "content_type": ["zaken", "nietnatuurlijkpersoon"], "codename": "change_nietnatuurlijkpersoon" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can delete niet-natuurlijk persoon", "content_type": ["zaken", "nietnatuurlijkpersoon"], "codename": "delete_nietnatuurlijkpersoon" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can view niet-natuurlijk persoon", "content_type": ["zaken", "nietnatuurlijkpersoon"], "codename": "view_nietnatuurlijkpersoon" } + }, + { "model": "auth.permission", "fields": { "name": "Can add vestiging", "content_type": ["zaken", "vestiging"], "codename": "add_vestiging" } }, + { "model": "auth.permission", "fields": { "name": "Can change vestiging", "content_type": ["zaken", "vestiging"], "codename": "change_vestiging" } }, + { "model": "auth.permission", "fields": { "name": "Can delete vestiging", "content_type": ["zaken", "vestiging"], "codename": "delete_vestiging" } }, + { "model": "auth.permission", "fields": { "name": "Can view vestiging", "content_type": ["zaken", "vestiging"], "codename": "view_vestiging" } }, + { + "model": "auth.permission", + "fields": { "name": "Can add organisatorische eenheid", "content_type": ["zaken", "organisatorischeeenheid"], "codename": "add_organisatorischeeenheid" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can change organisatorische eenheid", "content_type": ["zaken", "organisatorischeeenheid"], "codename": "change_organisatorischeeenheid" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can delete organisatorische eenheid", "content_type": ["zaken", "organisatorischeeenheid"], "codename": "delete_organisatorischeeenheid" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can view organisatorische eenheid", "content_type": ["zaken", "organisatorischeeenheid"], "codename": "view_organisatorischeeenheid" } + }, + { "model": "auth.permission", "fields": { "name": "Can add medewerker", "content_type": ["zaken", "medewerker"], "codename": "add_medewerker" } }, + { "model": "auth.permission", "fields": { "name": "Can change medewerker", "content_type": ["zaken", "medewerker"], "codename": "change_medewerker" } }, + { "model": "auth.permission", "fields": { "name": "Can delete medewerker", "content_type": ["zaken", "medewerker"], "codename": "delete_medewerker" } }, + { "model": "auth.permission", "fields": { "name": "Can view medewerker", "content_type": ["zaken", "medewerker"], "codename": "view_medewerker" } }, + { + "model": "auth.permission", + "fields": { "name": "Can add sub verblijf buitenland", "content_type": ["zaken", "subverblijfbuitenland"], "codename": "add_subverblijfbuitenland" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can change sub verblijf buitenland", "content_type": ["zaken", "subverblijfbuitenland"], "codename": "change_subverblijfbuitenland" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can delete sub verblijf buitenland", "content_type": ["zaken", "subverblijfbuitenland"], "codename": "delete_subverblijfbuitenland" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can view sub verblijf buitenland", "content_type": ["zaken", "subverblijfbuitenland"], "codename": "view_subverblijfbuitenland" } + }, + { "model": "auth.permission", "fields": { "name": "Can add besluit", "content_type": ["besluiten", "besluit"], "codename": "add_besluit" } }, + { "model": "auth.permission", "fields": { "name": "Can change besluit", "content_type": ["besluiten", "besluit"], "codename": "change_besluit" } }, + { "model": "auth.permission", "fields": { "name": "Can delete besluit", "content_type": ["besluiten", "besluit"], "codename": "delete_besluit" } }, + { "model": "auth.permission", "fields": { "name": "Can view besluit", "content_type": ["besluiten", "besluit"], "codename": "view_besluit" } }, + { + "model": "auth.permission", + "fields": { "name": "Can add besluitinformatieobject", "content_type": ["besluiten", "besluitinformatieobject"], "codename": "add_besluitinformatieobject" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can change besluitinformatieobject", "content_type": ["besluiten", "besluitinformatieobject"], "codename": "change_besluitinformatieobject" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can delete besluitinformatieobject", "content_type": ["besluiten", "besluitinformatieobject"], "codename": "delete_besluitinformatieobject" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can view besluitinformatieobject", "content_type": ["besluiten", "besluitinformatieobject"], "codename": "view_besluitinformatieobject" } + }, + { + "model": "auth.permission", + "fields": { + "name": "Can add enkelvoudig informatie object canonical", + "content_type": ["documenten", "enkelvoudiginformatieobjectcanonical"], + "codename": "add_enkelvoudiginformatieobjectcanonical" + } + }, + { + "model": "auth.permission", + "fields": { + "name": "Can change enkelvoudig informatie object canonical", + "content_type": ["documenten", "enkelvoudiginformatieobjectcanonical"], + "codename": "change_enkelvoudiginformatieobjectcanonical" + } + }, + { + "model": "auth.permission", + "fields": { + "name": "Can delete enkelvoudig informatie object canonical", + "content_type": ["documenten", "enkelvoudiginformatieobjectcanonical"], + "codename": "delete_enkelvoudiginformatieobjectcanonical" + } + }, + { + "model": "auth.permission", + "fields": { + "name": "Can view enkelvoudig informatie object canonical", + "content_type": ["documenten", "enkelvoudiginformatieobjectcanonical"], + "codename": "view_enkelvoudiginformatieobjectcanonical" + } + }, + { + "model": "auth.permission", + "fields": { "name": "Can add Document", "content_type": ["documenten", "enkelvoudiginformatieobject"], "codename": "add_enkelvoudiginformatieobject" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can change Document", "content_type": ["documenten", "enkelvoudiginformatieobject"], "codename": "change_enkelvoudiginformatieobject" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can delete Document", "content_type": ["documenten", "enkelvoudiginformatieobject"], "codename": "delete_enkelvoudiginformatieobject" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can view Document", "content_type": ["documenten", "enkelvoudiginformatieobject"], "codename": "view_enkelvoudiginformatieobject" } + }, + { "model": "auth.permission", "fields": { "name": "Can add bestandsdeel", "content_type": ["documenten", "bestandsdeel"], "codename": "add_bestandsdeel" } }, + { "model": "auth.permission", "fields": { "name": "Can change bestandsdeel", "content_type": ["documenten", "bestandsdeel"], "codename": "change_bestandsdeel" } }, + { "model": "auth.permission", "fields": { "name": "Can delete bestandsdeel", "content_type": ["documenten", "bestandsdeel"], "codename": "delete_bestandsdeel" } }, + { "model": "auth.permission", "fields": { "name": "Can view bestandsdeel", "content_type": ["documenten", "bestandsdeel"], "codename": "view_bestandsdeel" } }, + { + "model": "auth.permission", + "fields": { "name": "Can add gebruiksrecht informatieobject", "content_type": ["documenten", "gebruiksrechten"], "codename": "add_gebruiksrechten" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can change gebruiksrecht informatieobject", "content_type": ["documenten", "gebruiksrechten"], "codename": "change_gebruiksrechten" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can delete gebruiksrecht informatieobject", "content_type": ["documenten", "gebruiksrechten"], "codename": "delete_gebruiksrechten" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can view gebruiksrecht informatieobject", "content_type": ["documenten", "gebruiksrechten"], "codename": "view_gebruiksrechten" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can add objectinformatieobject", "content_type": ["documenten", "objectinformatieobject"], "codename": "add_objectinformatieobject" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can change objectinformatieobject", "content_type": ["documenten", "objectinformatieobject"], "codename": "change_objectinformatieobject" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can delete objectinformatieobject", "content_type": ["documenten", "objectinformatieobject"], "codename": "delete_objectinformatieobject" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can view objectinformatieobject", "content_type": ["documenten", "objectinformatieobject"], "codename": "view_objectinformatieobject" } + }, + { "model": "auth.permission", "fields": { "name": "Can add besluittype", "content_type": ["catalogi", "besluittype"], "codename": "add_besluittype" } }, + { "model": "auth.permission", "fields": { "name": "Can change besluittype", "content_type": ["catalogi", "besluittype"], "codename": "change_besluittype" } }, + { "model": "auth.permission", "fields": { "name": "Can delete besluittype", "content_type": ["catalogi", "besluittype"], "codename": "delete_besluittype" } }, + { "model": "auth.permission", "fields": { "name": "Can view besluittype", "content_type": ["catalogi", "besluittype"], "codename": "view_besluittype" } }, + { "model": "auth.permission", "fields": { "name": "Can add catalogus", "content_type": ["catalogi", "catalogus"], "codename": "add_catalogus" } }, + { "model": "auth.permission", "fields": { "name": "Can change catalogus", "content_type": ["catalogi", "catalogus"], "codename": "change_catalogus" } }, + { "model": "auth.permission", "fields": { "name": "Can delete catalogus", "content_type": ["catalogi", "catalogus"], "codename": "delete_catalogus" } }, + { "model": "auth.permission", "fields": { "name": "Can view catalogus", "content_type": ["catalogi", "catalogus"], "codename": "view_catalogus" } }, + { + "model": "auth.permission", + "fields": { "name": "Can add Eigenschap specificatie", "content_type": ["catalogi", "eigenschapspecificatie"], "codename": "add_eigenschapspecificatie" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can change Eigenschap specificatie", "content_type": ["catalogi", "eigenschapspecificatie"], "codename": "change_eigenschapspecificatie" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can delete Eigenschap specificatie", "content_type": ["catalogi", "eigenschapspecificatie"], "codename": "delete_eigenschapspecificatie" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can view Eigenschap specificatie", "content_type": ["catalogi", "eigenschapspecificatie"], "codename": "view_eigenschapspecificatie" } + }, + { "model": "auth.permission", "fields": { "name": "Can add Eigenschap", "content_type": ["catalogi", "eigenschap"], "codename": "add_eigenschap" } }, + { "model": "auth.permission", "fields": { "name": "Can change Eigenschap", "content_type": ["catalogi", "eigenschap"], "codename": "change_eigenschap" } }, + { "model": "auth.permission", "fields": { "name": "Can delete Eigenschap", "content_type": ["catalogi", "eigenschap"], "codename": "delete_eigenschap" } }, + { "model": "auth.permission", "fields": { "name": "Can view Eigenschap", "content_type": ["catalogi", "eigenschap"], "codename": "view_eigenschap" } }, + { + "model": "auth.permission", + "fields": { "name": "Can add Informatieobjecttype", "content_type": ["catalogi", "informatieobjecttype"], "codename": "add_informatieobjecttype" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can change Informatieobjecttype", "content_type": ["catalogi", "informatieobjecttype"], "codename": "change_informatieobjecttype" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can delete Informatieobjecttype", "content_type": ["catalogi", "informatieobjecttype"], "codename": "delete_informatieobjecttype" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can view Informatieobjecttype", "content_type": ["catalogi", "informatieobjecttype"], "codename": "view_informatieobjecttype" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can add Zaak-Informatieobject-Type", "content_type": ["catalogi", "zaaktypeinformatieobjecttype"], "codename": "add_zaaktypeinformatieobjecttype" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can change Zaak-Informatieobject-Type", "content_type": ["catalogi", "zaaktypeinformatieobjecttype"], "codename": "change_zaaktypeinformatieobjecttype" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can delete Zaak-Informatieobject-Type", "content_type": ["catalogi", "zaaktypeinformatieobjecttype"], "codename": "delete_zaaktypeinformatieobjecttype" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can view Zaak-Informatieobject-Type", "content_type": ["catalogi", "zaaktypeinformatieobjecttype"], "codename": "view_zaaktypeinformatieobjecttype" } + }, + { "model": "auth.permission", "fields": { "name": "Can add Zaaktypenrelatie", "content_type": ["catalogi", "zaaktypenrelatie"], "codename": "add_zaaktypenrelatie" } }, + { "model": "auth.permission", "fields": { "name": "Can change Zaaktypenrelatie", "content_type": ["catalogi", "zaaktypenrelatie"], "codename": "change_zaaktypenrelatie" } }, + { "model": "auth.permission", "fields": { "name": "Can delete Zaaktypenrelatie", "content_type": ["catalogi", "zaaktypenrelatie"], "codename": "delete_zaaktypenrelatie" } }, + { "model": "auth.permission", "fields": { "name": "Can view Zaaktypenrelatie", "content_type": ["catalogi", "zaaktypenrelatie"], "codename": "view_zaaktypenrelatie" } }, + { "model": "auth.permission", "fields": { "name": "Can add resultaattype", "content_type": ["catalogi", "resultaattype"], "codename": "add_resultaattype" } }, + { "model": "auth.permission", "fields": { "name": "Can change resultaattype", "content_type": ["catalogi", "resultaattype"], "codename": "change_resultaattype" } }, + { "model": "auth.permission", "fields": { "name": "Can delete resultaattype", "content_type": ["catalogi", "resultaattype"], "codename": "delete_resultaattype" } }, + { "model": "auth.permission", "fields": { "name": "Can view resultaattype", "content_type": ["catalogi", "resultaattype"], "codename": "view_resultaattype" } }, + { "model": "auth.permission", "fields": { "name": "Can add Roltype", "content_type": ["catalogi", "roltype"], "codename": "add_roltype" } }, + { "model": "auth.permission", "fields": { "name": "Can change Roltype", "content_type": ["catalogi", "roltype"], "codename": "change_roltype" } }, + { "model": "auth.permission", "fields": { "name": "Can delete Roltype", "content_type": ["catalogi", "roltype"], "codename": "delete_roltype" } }, + { "model": "auth.permission", "fields": { "name": "Can view Roltype", "content_type": ["catalogi", "roltype"], "codename": "view_roltype" } }, + { "model": "auth.permission", "fields": { "name": "Can add Statustype", "content_type": ["catalogi", "statustype"], "codename": "add_statustype" } }, + { "model": "auth.permission", "fields": { "name": "Can change Statustype", "content_type": ["catalogi", "statustype"], "codename": "change_statustype" } }, + { "model": "auth.permission", "fields": { "name": "Can delete Statustype", "content_type": ["catalogi", "statustype"], "codename": "delete_statustype" } }, + { "model": "auth.permission", "fields": { "name": "Can view Statustype", "content_type": ["catalogi", "statustype"], "codename": "view_statustype" } }, + { "model": "auth.permission", "fields": { "name": "Can add Zaaktype", "content_type": ["catalogi", "zaaktype"], "codename": "add_zaaktype" } }, + { "model": "auth.permission", "fields": { "name": "Can change Zaaktype", "content_type": ["catalogi", "zaaktype"], "codename": "change_zaaktype" } }, + { "model": "auth.permission", "fields": { "name": "Can delete Zaaktype", "content_type": ["catalogi", "zaaktype"], "codename": "delete_zaaktype" } }, + { "model": "auth.permission", "fields": { "name": "Can view Zaaktype", "content_type": ["catalogi", "zaaktype"], "codename": "view_zaaktype" } }, + { "model": "auth.permission", "fields": { "name": "Can add Internal service", "content_type": ["config", "internalservice"], "codename": "add_internalservice" } }, + { "model": "auth.permission", "fields": { "name": "Can change Internal service", "content_type": ["config", "internalservice"], "codename": "change_internalservice" } }, + { "model": "auth.permission", "fields": { "name": "Can delete Internal service", "content_type": ["config", "internalservice"], "codename": "delete_internalservice" } }, + { "model": "auth.permission", "fields": { "name": "Can view Internal service", "content_type": ["config", "internalservice"], "codename": "view_internalservice" } }, + { "model": "auth.permission", "fields": { "name": "Can add feature flags", "content_type": ["config", "featureflags"], "codename": "add_featureflags" } }, + { "model": "auth.permission", "fields": { "name": "Can change feature flags", "content_type": ["config", "featureflags"], "codename": "change_featureflags" } }, + { "model": "auth.permission", "fields": { "name": "Can delete feature flags", "content_type": ["config", "featureflags"], "codename": "delete_featureflags" } }, + { "model": "auth.permission", "fields": { "name": "Can view feature flags", "content_type": ["config", "featureflags"], "codename": "view_featureflags" } }, + { + "model": "auth.permission", + "fields": { "name": "Can add Selectielijstconfiguratie", "content_type": ["selectielijst", "referentielijstconfig"], "codename": "add_referentielijstconfig" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can change Selectielijstconfiguratie", "content_type": ["selectielijst", "referentielijstconfig"], "codename": "change_referentielijstconfig" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can delete Selectielijstconfiguratie", "content_type": ["selectielijst", "referentielijstconfig"], "codename": "delete_referentielijstconfig" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can view Selectielijstconfiguratie", "content_type": ["selectielijst", "referentielijstconfig"], "codename": "view_referentielijstconfig" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can add failed notification", "content_type": ["notifications_log", "failednotification"], "codename": "add_failednotification" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can change failed notification", "content_type": ["notifications_log", "failednotification"], "codename": "change_failednotification" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can delete failed notification", "content_type": ["notifications_log", "failednotification"], "codename": "delete_failednotification" } + }, + { + "model": "auth.permission", + "fields": { "name": "Can view failed notification", "content_type": ["notifications_log", "failednotification"], "codename": "view_failednotification" } + }, + { + "model": "auth.group", + "fields": { + "name": "Admin", + "permissions": [ + ["add_user", "accounts", "user"], + ["change_user", "accounts", "user"], + ["delete_user", "accounts", "user"], + ["view_user", "accounts", "user"], + ["add_logentry", "admin", "logentry"], + ["change_logentry", "admin", "logentry"], + ["delete_logentry", "admin", "logentry"], + ["view_logentry", "admin", "logentry"], + ["add_appgroup", "admin_index", "appgroup"], + ["change_appgroup", "admin_index", "appgroup"], + ["delete_appgroup", "admin_index", "appgroup"], + ["view_appgroup", "admin_index", "appgroup"], + ["add_applink", "admin_index", "applink"], + ["change_applink", "admin_index", "applink"], + ["delete_applink", "admin_index", "applink"], + ["view_applink", "admin_index", "applink"], + ["add_contenttypeproxy", "admin_index", "contenttypeproxy"], + ["change_contenttypeproxy", "admin_index", "contenttypeproxy"], + ["delete_contenttypeproxy", "admin_index", "contenttypeproxy"], + ["view_contenttypeproxy", "admin_index", "contenttypeproxy"], + ["add_audittrail", "audittrails", "audittrail"], + ["change_audittrail", "audittrails", "audittrail"], + ["delete_audittrail", "audittrails", "audittrail"], + ["view_audittrail", "audittrails", "audittrail"], + ["add_group", "auth", "group"], + ["change_group", "auth", "group"], + ["delete_group", "auth", "group"], + ["view_group", "auth", "group"], + ["add_permission", "auth", "permission"], + ["change_permission", "auth", "permission"], + ["delete_permission", "auth", "permission"], + ["view_permission", "auth", "permission"], + ["add_applicatie", "authorizations", "applicatie"], + ["change_applicatie", "authorizations", "applicatie"], + ["delete_applicatie", "authorizations", "applicatie"], + ["view_applicatie", "authorizations", "applicatie"], + ["add_authorizationsconfig", "authorizations", "authorizationsconfig"], + ["change_authorizationsconfig", "authorizations", "authorizationsconfig"], + ["delete_authorizationsconfig", "authorizations", "authorizationsconfig"], + ["view_authorizationsconfig", "authorizations", "authorizationsconfig"], + ["add_autorisatie", "authorizations", "autorisatie"], + ["change_autorisatie", "authorizations", "autorisatie"], + ["delete_autorisatie", "authorizations", "autorisatie"], + ["view_autorisatie", "authorizations", "autorisatie"], + ["add_autorisatiespec", "autorisaties", "autorisatiespec"], + ["change_autorisatiespec", "autorisaties", "autorisatiespec"], + ["delete_autorisatiespec", "autorisaties", "autorisatiespec"], + ["view_autorisatiespec", "autorisaties", "autorisatiespec"], + ["add_accessattempt", "axes", "accessattempt"], + ["change_accessattempt", "axes", "accessattempt"], + ["delete_accessattempt", "axes", "accessattempt"], + ["view_accessattempt", "axes", "accessattempt"], + ["add_accesslog", "axes", "accesslog"], + ["change_accesslog", "axes", "accesslog"], + ["delete_accesslog", "axes", "accesslog"], + ["view_accesslog", "axes", "accesslog"], + ["add_besluit", "besluiten", "besluit"], + ["change_besluit", "besluiten", "besluit"], + ["delete_besluit", "besluiten", "besluit"], + ["view_besluit", "besluiten", "besluit"], + ["add_besluitinformatieobject", "besluiten", "besluitinformatieobject"], + ["change_besluitinformatieobject", "besluiten", "besluitinformatieobject"], + ["delete_besluitinformatieobject", "besluiten", "besluitinformatieobject"], + ["view_besluitinformatieobject", "besluiten", "besluitinformatieobject"], + ["add_besluittype", "catalogi", "besluittype"], + ["change_besluittype", "catalogi", "besluittype"], + ["delete_besluittype", "catalogi", "besluittype"], + ["view_besluittype", "catalogi", "besluittype"], + ["add_catalogus", "catalogi", "catalogus"], + ["change_catalogus", "catalogi", "catalogus"], + ["delete_catalogus", "catalogi", "catalogus"], + ["view_catalogus", "catalogi", "catalogus"], + ["add_eigenschap", "catalogi", "eigenschap"], + ["change_eigenschap", "catalogi", "eigenschap"], + ["delete_eigenschap", "catalogi", "eigenschap"], + ["view_eigenschap", "catalogi", "eigenschap"], + ["add_eigenschapspecificatie", "catalogi", "eigenschapspecificatie"], + ["change_eigenschapspecificatie", "catalogi", "eigenschapspecificatie"], + ["delete_eigenschapspecificatie", "catalogi", "eigenschapspecificatie"], + ["view_eigenschapspecificatie", "catalogi", "eigenschapspecificatie"], + ["add_informatieobjecttype", "catalogi", "informatieobjecttype"], + ["change_informatieobjecttype", "catalogi", "informatieobjecttype"], + ["delete_informatieobjecttype", "catalogi", "informatieobjecttype"], + ["view_informatieobjecttype", "catalogi", "informatieobjecttype"], + ["add_resultaattype", "catalogi", "resultaattype"], + ["change_resultaattype", "catalogi", "resultaattype"], + ["delete_resultaattype", "catalogi", "resultaattype"], + ["view_resultaattype", "catalogi", "resultaattype"], + ["add_roltype", "catalogi", "roltype"], + ["change_roltype", "catalogi", "roltype"], + ["delete_roltype", "catalogi", "roltype"], + ["view_roltype", "catalogi", "roltype"], + ["add_statustype", "catalogi", "statustype"], + ["change_statustype", "catalogi", "statustype"], + ["delete_statustype", "catalogi", "statustype"], + ["view_statustype", "catalogi", "statustype"], + ["add_zaaktype", "catalogi", "zaaktype"], + ["change_zaaktype", "catalogi", "zaaktype"], + ["delete_zaaktype", "catalogi", "zaaktype"], + ["view_zaaktype", "catalogi", "zaaktype"], + ["add_zaaktypeinformatieobjecttype", "catalogi", "zaaktypeinformatieobjecttype"], + ["change_zaaktypeinformatieobjecttype", "catalogi", "zaaktypeinformatieobjecttype"], + ["delete_zaaktypeinformatieobjecttype", "catalogi", "zaaktypeinformatieobjecttype"], + ["view_zaaktypeinformatieobjecttype", "catalogi", "zaaktypeinformatieobjecttype"], + ["add_zaaktypenrelatie", "catalogi", "zaaktypenrelatie"], + ["change_zaaktypenrelatie", "catalogi", "zaaktypenrelatie"], + ["delete_zaaktypenrelatie", "catalogi", "zaaktypenrelatie"], + ["view_zaaktypenrelatie", "catalogi", "zaaktypenrelatie"], + ["add_contenttype", "contenttypes", "contenttype"], + ["change_contenttype", "contenttypes", "contenttype"], + ["delete_contenttype", "contenttypes", "contenttype"], + ["view_contenttype", "contenttypes", "contenttype"], + ["add_statuslog", "django_db_logger", "statuslog"], + ["change_statuslog", "django_db_logger", "statuslog"], + ["delete_statuslog", "django_db_logger", "statuslog"], + ["view_statuslog", "django_db_logger", "statuslog"], + ["add_enkelvoudiginformatieobject", "documenten", "enkelvoudiginformatieobject"], + ["change_enkelvoudiginformatieobject", "documenten", "enkelvoudiginformatieobject"], + ["delete_enkelvoudiginformatieobject", "documenten", "enkelvoudiginformatieobject"], + ["view_enkelvoudiginformatieobject", "documenten", "enkelvoudiginformatieobject"], + ["add_enkelvoudiginformatieobjectcanonical", "documenten", "enkelvoudiginformatieobjectcanonical"], + ["change_enkelvoudiginformatieobjectcanonical", "documenten", "enkelvoudiginformatieobjectcanonical"], + ["delete_enkelvoudiginformatieobjectcanonical", "documenten", "enkelvoudiginformatieobjectcanonical"], + ["view_enkelvoudiginformatieobjectcanonical", "documenten", "enkelvoudiginformatieobjectcanonical"], + ["add_gebruiksrechten", "documenten", "gebruiksrechten"], + ["change_gebruiksrechten", "documenten", "gebruiksrechten"], + ["delete_gebruiksrechten", "documenten", "gebruiksrechten"], + ["view_gebruiksrechten", "documenten", "gebruiksrechten"], + ["add_objectinformatieobject", "documenten", "objectinformatieobject"], + ["change_objectinformatieobject", "documenten", "objectinformatieobject"], + ["delete_objectinformatieobject", "documenten", "objectinformatieobject"], + ["view_objectinformatieobject", "documenten", "objectinformatieobject"], + ["add_notificationsconfig", "notifications", "notificationsconfig"], + ["change_notificationsconfig", "notifications", "notificationsconfig"], + ["delete_notificationsconfig", "notifications", "notificationsconfig"], + ["view_notificationsconfig", "notifications", "notificationsconfig"], + ["add_subscription", "notifications", "subscription"], + ["change_subscription", "notifications", "subscription"], + ["delete_subscription", "notifications", "subscription"], + ["view_subscription", "notifications", "subscription"], + ["add_failednotification", "notifications_log", "failednotification"], + ["change_failednotification", "notifications_log", "failednotification"], + ["delete_failednotification", "notifications_log", "failednotification"], + ["view_failednotification", "notifications_log", "failednotification"], + ["add_session", "sessions", "session"], + ["change_session", "sessions", "session"], + ["delete_session", "sessions", "session"], + ["view_session", "sessions", "session"], + ["add_site", "sites", "site"], + ["change_site", "sites", "site"], + ["delete_site", "sites", "site"], + ["view_site", "sites", "site"], + ["add_jwtsecret", "vng_api_common", "jwtsecret"], + ["change_jwtsecret", "vng_api_common", "jwtsecret"], + ["delete_jwtsecret", "vng_api_common", "jwtsecret"], + ["view_jwtsecret", "vng_api_common", "jwtsecret"], + ["add_adres", "zaken", "adres"], + ["change_adres", "zaken", "adres"], + ["delete_adres", "zaken", "adres"], + ["view_adres", "zaken", "adres"], + ["add_buurt", "zaken", "buurt"], + ["change_buurt", "zaken", "buurt"], + ["delete_buurt", "zaken", "buurt"], + ["view_buurt", "zaken", "buurt"], + ["add_gemeente", "zaken", "gemeente"], + ["change_gemeente", "zaken", "gemeente"], + ["delete_gemeente", "zaken", "gemeente"], + ["view_gemeente", "zaken", "gemeente"], + ["add_gemeentelijkeopenbareruimte", "zaken", "gemeentelijkeopenbareruimte"], + ["change_gemeentelijkeopenbareruimte", "zaken", "gemeentelijkeopenbareruimte"], + ["delete_gemeentelijkeopenbareruimte", "zaken", "gemeentelijkeopenbareruimte"], + ["view_gemeentelijkeopenbareruimte", "zaken", "gemeentelijkeopenbareruimte"], + ["add_huishouden", "zaken", "huishouden"], + ["change_huishouden", "zaken", "huishouden"], + ["delete_huishouden", "zaken", "huishouden"], + ["view_huishouden", "zaken", "huishouden"], + ["add_inrichtingselement", "zaken", "inrichtingselement"], + ["change_inrichtingselement", "zaken", "inrichtingselement"], + ["delete_inrichtingselement", "zaken", "inrichtingselement"], + ["view_inrichtingselement", "zaken", "inrichtingselement"], + ["add_kadastraleonroerendezaak", "zaken", "kadastraleonroerendezaak"], + ["change_kadastraleonroerendezaak", "zaken", "kadastraleonroerendezaak"], + ["delete_kadastraleonroerendezaak", "zaken", "kadastraleonroerendezaak"], + ["view_kadastraleonroerendezaak", "zaken", "kadastraleonroerendezaak"], + ["add_klantcontact", "zaken", "klantcontact"], + ["change_klantcontact", "zaken", "klantcontact"], + ["delete_klantcontact", "zaken", "klantcontact"], + ["view_klantcontact", "zaken", "klantcontact"], + ["add_kunstwerkdeel", "zaken", "kunstwerkdeel"], + ["change_kunstwerkdeel", "zaken", "kunstwerkdeel"], + ["delete_kunstwerkdeel", "zaken", "kunstwerkdeel"], + ["view_kunstwerkdeel", "zaken", "kunstwerkdeel"], + ["add_maatschappelijkeactiviteit", "zaken", "maatschappelijkeactiviteit"], + ["change_maatschappelijkeactiviteit", "zaken", "maatschappelijkeactiviteit"], + ["delete_maatschappelijkeactiviteit", "zaken", "maatschappelijkeactiviteit"], + ["view_maatschappelijkeactiviteit", "zaken", "maatschappelijkeactiviteit"], + ["add_medewerker", "zaken", "medewerker"], + ["change_medewerker", "zaken", "medewerker"], + ["delete_medewerker", "zaken", "medewerker"], + ["view_medewerker", "zaken", "medewerker"], + ["add_natuurlijkpersoon", "zaken", "natuurlijkpersoon"], + ["change_natuurlijkpersoon", "zaken", "natuurlijkpersoon"], + ["delete_natuurlijkpersoon", "zaken", "natuurlijkpersoon"], + ["view_natuurlijkpersoon", "zaken", "natuurlijkpersoon"], + ["add_nietnatuurlijkpersoon", "zaken", "nietnatuurlijkpersoon"], + ["change_nietnatuurlijkpersoon", "zaken", "nietnatuurlijkpersoon"], + ["delete_nietnatuurlijkpersoon", "zaken", "nietnatuurlijkpersoon"], + ["view_nietnatuurlijkpersoon", "zaken", "nietnatuurlijkpersoon"], + ["add_openbareruimte", "zaken", "openbareruimte"], + ["change_openbareruimte", "zaken", "openbareruimte"], + ["delete_openbareruimte", "zaken", "openbareruimte"], + ["view_openbareruimte", "zaken", "openbareruimte"], + ["add_organisatorischeeenheid", "zaken", "organisatorischeeenheid"], + ["change_organisatorischeeenheid", "zaken", "organisatorischeeenheid"], + ["delete_organisatorischeeenheid", "zaken", "organisatorischeeenheid"], + ["view_organisatorischeeenheid", "zaken", "organisatorischeeenheid"], + ["add_overige", "zaken", "overige"], + ["change_overige", "zaken", "overige"], + ["delete_overige", "zaken", "overige"], + ["view_overige", "zaken", "overige"], + ["add_pand", "zaken", "pand"], + ["change_pand", "zaken", "pand"], + ["delete_pand", "zaken", "pand"], + ["view_pand", "zaken", "pand"], + ["add_relevantezaakrelatie", "zaken", "relevantezaakrelatie"], + ["change_relevantezaakrelatie", "zaken", "relevantezaakrelatie"], + ["delete_relevantezaakrelatie", "zaken", "relevantezaakrelatie"], + ["view_relevantezaakrelatie", "zaken", "relevantezaakrelatie"], + ["add_resultaat", "zaken", "resultaat"], + ["change_resultaat", "zaken", "resultaat"], + ["delete_resultaat", "zaken", "resultaat"], + ["view_resultaat", "zaken", "resultaat"], + ["add_rol", "zaken", "rol"], + ["change_rol", "zaken", "rol"], + ["delete_rol", "zaken", "rol"], + ["view_rol", "zaken", "rol"], + ["add_spoorbaandeel", "zaken", "spoorbaandeel"], + ["change_spoorbaandeel", "zaken", "spoorbaandeel"], + ["delete_spoorbaandeel", "zaken", "spoorbaandeel"], + ["view_spoorbaandeel", "zaken", "spoorbaandeel"], + ["add_status", "zaken", "status"], + ["change_status", "zaken", "status"], + ["delete_status", "zaken", "status"], + ["view_status", "zaken", "status"], + ["add_subverblijfbuitenland", "zaken", "subverblijfbuitenland"], + ["change_subverblijfbuitenland", "zaken", "subverblijfbuitenland"], + ["delete_subverblijfbuitenland", "zaken", "subverblijfbuitenland"], + ["view_subverblijfbuitenland", "zaken", "subverblijfbuitenland"], + ["add_terreindeel", "zaken", "terreindeel"], + ["change_terreindeel", "zaken", "terreindeel"], + ["delete_terreindeel", "zaken", "terreindeel"], + ["view_terreindeel", "zaken", "terreindeel"], + ["add_terreingebouwdobject", "zaken", "terreingebouwdobject"], + ["change_terreingebouwdobject", "zaken", "terreingebouwdobject"], + ["delete_terreingebouwdobject", "zaken", "terreingebouwdobject"], + ["view_terreingebouwdobject", "zaken", "terreingebouwdobject"], + ["add_vestiging", "zaken", "vestiging"], + ["change_vestiging", "zaken", "vestiging"], + ["delete_vestiging", "zaken", "vestiging"], + ["view_vestiging", "zaken", "vestiging"], + ["add_waterdeel", "zaken", "waterdeel"], + ["change_waterdeel", "zaken", "waterdeel"], + ["delete_waterdeel", "zaken", "waterdeel"], + ["view_waterdeel", "zaken", "waterdeel"], + ["add_wegdeel", "zaken", "wegdeel"], + ["change_wegdeel", "zaken", "wegdeel"], + ["delete_wegdeel", "zaken", "wegdeel"], + ["view_wegdeel", "zaken", "wegdeel"], + ["add_wijk", "zaken", "wijk"], + ["change_wijk", "zaken", "wijk"], + ["delete_wijk", "zaken", "wijk"], + ["view_wijk", "zaken", "wijk"], + ["add_woonplaats", "zaken", "woonplaats"], + ["change_woonplaats", "zaken", "woonplaats"], + ["delete_woonplaats", "zaken", "woonplaats"], + ["view_woonplaats", "zaken", "woonplaats"], + ["add_wozdeelobject", "zaken", "wozdeelobject"], + ["change_wozdeelobject", "zaken", "wozdeelobject"], + ["delete_wozdeelobject", "zaken", "wozdeelobject"], + ["view_wozdeelobject", "zaken", "wozdeelobject"], + ["add_wozobject", "zaken", "wozobject"], + ["change_wozobject", "zaken", "wozobject"], + ["delete_wozobject", "zaken", "wozobject"], + ["view_wozobject", "zaken", "wozobject"], + ["add_wozwaarde", "zaken", "wozwaarde"], + ["change_wozwaarde", "zaken", "wozwaarde"], + ["delete_wozwaarde", "zaken", "wozwaarde"], + ["view_wozwaarde", "zaken", "wozwaarde"], + ["add_zaak", "zaken", "zaak"], + ["change_zaak", "zaken", "zaak"], + ["delete_zaak", "zaken", "zaak"], + ["view_zaak", "zaken", "zaak"], + ["add_zaakbesluit", "zaken", "zaakbesluit"], + ["change_zaakbesluit", "zaken", "zaakbesluit"], + ["delete_zaakbesluit", "zaken", "zaakbesluit"], + ["view_zaakbesluit", "zaken", "zaakbesluit"], + ["add_zaakeigenschap", "zaken", "zaakeigenschap"], + ["change_zaakeigenschap", "zaken", "zaakeigenschap"], + ["delete_zaakeigenschap", "zaken", "zaakeigenschap"], + ["view_zaakeigenschap", "zaken", "zaakeigenschap"], + ["add_zaakinformatieobject", "zaken", "zaakinformatieobject"], + ["change_zaakinformatieobject", "zaken", "zaakinformatieobject"], + ["delete_zaakinformatieobject", "zaken", "zaakinformatieobject"], + ["view_zaakinformatieobject", "zaken", "zaakinformatieobject"], + ["add_zaakkenmerk", "zaken", "zaakkenmerk"], + ["change_zaakkenmerk", "zaken", "zaakkenmerk"], + ["delete_zaakkenmerk", "zaken", "zaakkenmerk"], + ["view_zaakkenmerk", "zaken", "zaakkenmerk"], + ["add_zaakobject", "zaken", "zaakobject"], + ["change_zaakobject", "zaken", "zaakobject"], + ["delete_zaakobject", "zaken", "zaakobject"], + ["view_zaakobject", "zaken", "zaakobject"], + ["add_zakelijkrecht", "zaken", "zakelijkrecht"], + ["change_zakelijkrecht", "zaken", "zakelijkrecht"], + ["delete_zakelijkrecht", "zaken", "zakelijkrecht"], + ["view_zakelijkrecht", "zaken", "zakelijkrecht"], + ["add_zakelijkrechtheeftalsgerechtigde", "zaken", "zakelijkrechtheeftalsgerechtigde"], + ["change_zakelijkrechtheeftalsgerechtigde", "zaken", "zakelijkrechtheeftalsgerechtigde"], + ["delete_zakelijkrechtheeftalsgerechtigde", "zaken", "zakelijkrechtheeftalsgerechtigde"], + ["view_zakelijkrechtheeftalsgerechtigde", "zaken", "zakelijkrechtheeftalsgerechtigde"] + ] + } + }, + { + "model": "auth.group", + "fields": { + "name": "Autorisaties admin", + "permissions": [ + ["add_applicatie", "authorizations", "applicatie"], + ["change_applicatie", "authorizations", "applicatie"], + ["delete_applicatie", "authorizations", "applicatie"], + ["view_applicatie", "authorizations", "applicatie"], + ["add_authorizationsconfig", "authorizations", "authorizationsconfig"], + ["change_authorizationsconfig", "authorizations", "authorizationsconfig"], + ["delete_authorizationsconfig", "authorizations", "authorizationsconfig"], + ["view_authorizationsconfig", "authorizations", "authorizationsconfig"], + ["add_autorisatie", "authorizations", "autorisatie"], + ["change_autorisatie", "authorizations", "autorisatie"], + ["delete_autorisatie", "authorizations", "autorisatie"], + ["view_autorisatie", "authorizations", "autorisatie"], + ["add_autorisatiespec", "autorisaties", "autorisatiespec"], + ["change_autorisatiespec", "autorisaties", "autorisatiespec"], + ["delete_autorisatiespec", "autorisaties", "autorisatiespec"], + ["view_autorisatiespec", "autorisaties", "autorisatiespec"] + ] + } + }, + { + "model": "auth.group", + "fields": { + "name": "Besluiten admin", + "permissions": [ + ["add_besluit", "besluiten", "besluit"], + ["change_besluit", "besluiten", "besluit"], + ["delete_besluit", "besluiten", "besluit"], + ["view_besluit", "besluiten", "besluit"], + ["add_besluitinformatieobject", "besluiten", "besluitinformatieobject"], + ["change_besluitinformatieobject", "besluiten", "besluitinformatieobject"], + ["delete_besluitinformatieobject", "besluiten", "besluitinformatieobject"], + ["view_besluitinformatieobject", "besluiten", "besluitinformatieobject"] + ] + } + }, + { + "model": "auth.group", + "fields": { + "name": "Catalogi admin", + "permissions": [ + ["add_besluittype", "catalogi", "besluittype"], + ["change_besluittype", "catalogi", "besluittype"], + ["delete_besluittype", "catalogi", "besluittype"], + ["view_besluittype", "catalogi", "besluittype"], + ["add_catalogus", "catalogi", "catalogus"], + ["change_catalogus", "catalogi", "catalogus"], + ["delete_catalogus", "catalogi", "catalogus"], + ["view_catalogus", "catalogi", "catalogus"], + ["add_eigenschap", "catalogi", "eigenschap"], + ["change_eigenschap", "catalogi", "eigenschap"], + ["delete_eigenschap", "catalogi", "eigenschap"], + ["view_eigenschap", "catalogi", "eigenschap"], + ["add_eigenschapspecificatie", "catalogi", "eigenschapspecificatie"], + ["change_eigenschapspecificatie", "catalogi", "eigenschapspecificatie"], + ["delete_eigenschapspecificatie", "catalogi", "eigenschapspecificatie"], + ["view_eigenschapspecificatie", "catalogi", "eigenschapspecificatie"], + ["add_informatieobjecttype", "catalogi", "informatieobjecttype"], + ["change_informatieobjecttype", "catalogi", "informatieobjecttype"], + ["delete_informatieobjecttype", "catalogi", "informatieobjecttype"], + ["view_informatieobjecttype", "catalogi", "informatieobjecttype"], + ["add_resultaattype", "catalogi", "resultaattype"], + ["change_resultaattype", "catalogi", "resultaattype"], + ["delete_resultaattype", "catalogi", "resultaattype"], + ["view_resultaattype", "catalogi", "resultaattype"], + ["add_roltype", "catalogi", "roltype"], + ["change_roltype", "catalogi", "roltype"], + ["delete_roltype", "catalogi", "roltype"], + ["view_roltype", "catalogi", "roltype"], + ["add_statustype", "catalogi", "statustype"], + ["change_statustype", "catalogi", "statustype"], + ["delete_statustype", "catalogi", "statustype"], + ["view_statustype", "catalogi", "statustype"], + ["add_zaaktype", "catalogi", "zaaktype"], + ["change_zaaktype", "catalogi", "zaaktype"], + ["delete_zaaktype", "catalogi", "zaaktype"], + ["view_zaaktype", "catalogi", "zaaktype"], + ["add_zaaktypeinformatieobjecttype", "catalogi", "zaaktypeinformatieobjecttype"], + ["change_zaaktypeinformatieobjecttype", "catalogi", "zaaktypeinformatieobjecttype"], + ["delete_zaaktypeinformatieobjecttype", "catalogi", "zaaktypeinformatieobjecttype"], + ["view_zaaktypeinformatieobjecttype", "catalogi", "zaaktypeinformatieobjecttype"], + ["add_zaaktypenrelatie", "catalogi", "zaaktypenrelatie"], + ["change_zaaktypenrelatie", "catalogi", "zaaktypenrelatie"], + ["delete_zaaktypenrelatie", "catalogi", "zaaktypenrelatie"], + ["view_zaaktypenrelatie", "catalogi", "zaaktypenrelatie"] + ] + } + }, + { + "model": "auth.group", + "fields": { + "name": "Documenten admin", + "permissions": [ + ["add_enkelvoudiginformatieobject", "documenten", "enkelvoudiginformatieobject"], + ["change_enkelvoudiginformatieobject", "documenten", "enkelvoudiginformatieobject"], + ["delete_enkelvoudiginformatieobject", "documenten", "enkelvoudiginformatieobject"], + ["view_enkelvoudiginformatieobject", "documenten", "enkelvoudiginformatieobject"], + ["add_enkelvoudiginformatieobjectcanonical", "documenten", "enkelvoudiginformatieobjectcanonical"], + ["change_enkelvoudiginformatieobjectcanonical", "documenten", "enkelvoudiginformatieobjectcanonical"], + ["delete_enkelvoudiginformatieobjectcanonical", "documenten", "enkelvoudiginformatieobjectcanonical"], + ["view_enkelvoudiginformatieobjectcanonical", "documenten", "enkelvoudiginformatieobjectcanonical"], + ["add_gebruiksrechten", "documenten", "gebruiksrechten"], + ["change_gebruiksrechten", "documenten", "gebruiksrechten"], + ["delete_gebruiksrechten", "documenten", "gebruiksrechten"], + ["view_gebruiksrechten", "documenten", "gebruiksrechten"], + ["add_objectinformatieobject", "documenten", "objectinformatieobject"], + ["change_objectinformatieobject", "documenten", "objectinformatieobject"], + ["delete_objectinformatieobject", "documenten", "objectinformatieobject"], + ["view_objectinformatieobject", "documenten", "objectinformatieobject"] + ] + } + }, + { + "model": "auth.group", + "fields": { + "name": "Zaken admin", + "permissions": [ + ["add_adres", "zaken", "adres"], + ["change_adres", "zaken", "adres"], + ["delete_adres", "zaken", "adres"], + ["view_adres", "zaken", "adres"], + ["add_buurt", "zaken", "buurt"], + ["change_buurt", "zaken", "buurt"], + ["delete_buurt", "zaken", "buurt"], + ["view_buurt", "zaken", "buurt"], + ["add_gemeente", "zaken", "gemeente"], + ["change_gemeente", "zaken", "gemeente"], + ["delete_gemeente", "zaken", "gemeente"], + ["view_gemeente", "zaken", "gemeente"], + ["add_gemeentelijkeopenbareruimte", "zaken", "gemeentelijkeopenbareruimte"], + ["change_gemeentelijkeopenbareruimte", "zaken", "gemeentelijkeopenbareruimte"], + ["delete_gemeentelijkeopenbareruimte", "zaken", "gemeentelijkeopenbareruimte"], + ["view_gemeentelijkeopenbareruimte", "zaken", "gemeentelijkeopenbareruimte"], + ["add_huishouden", "zaken", "huishouden"], + ["change_huishouden", "zaken", "huishouden"], + ["delete_huishouden", "zaken", "huishouden"], + ["view_huishouden", "zaken", "huishouden"], + ["add_inrichtingselement", "zaken", "inrichtingselement"], + ["change_inrichtingselement", "zaken", "inrichtingselement"], + ["delete_inrichtingselement", "zaken", "inrichtingselement"], + ["view_inrichtingselement", "zaken", "inrichtingselement"], + ["add_kadastraleonroerendezaak", "zaken", "kadastraleonroerendezaak"], + ["change_kadastraleonroerendezaak", "zaken", "kadastraleonroerendezaak"], + ["delete_kadastraleonroerendezaak", "zaken", "kadastraleonroerendezaak"], + ["view_kadastraleonroerendezaak", "zaken", "kadastraleonroerendezaak"], + ["add_klantcontact", "zaken", "klantcontact"], + ["change_klantcontact", "zaken", "klantcontact"], + ["delete_klantcontact", "zaken", "klantcontact"], + ["view_klantcontact", "zaken", "klantcontact"], + ["add_kunstwerkdeel", "zaken", "kunstwerkdeel"], + ["change_kunstwerkdeel", "zaken", "kunstwerkdeel"], + ["delete_kunstwerkdeel", "zaken", "kunstwerkdeel"], + ["view_kunstwerkdeel", "zaken", "kunstwerkdeel"], + ["add_maatschappelijkeactiviteit", "zaken", "maatschappelijkeactiviteit"], + ["change_maatschappelijkeactiviteit", "zaken", "maatschappelijkeactiviteit"], + ["delete_maatschappelijkeactiviteit", "zaken", "maatschappelijkeactiviteit"], + ["view_maatschappelijkeactiviteit", "zaken", "maatschappelijkeactiviteit"], + ["add_medewerker", "zaken", "medewerker"], + ["change_medewerker", "zaken", "medewerker"], + ["delete_medewerker", "zaken", "medewerker"], + ["view_medewerker", "zaken", "medewerker"], + ["add_natuurlijkpersoon", "zaken", "natuurlijkpersoon"], + ["change_natuurlijkpersoon", "zaken", "natuurlijkpersoon"], + ["delete_natuurlijkpersoon", "zaken", "natuurlijkpersoon"], + ["view_natuurlijkpersoon", "zaken", "natuurlijkpersoon"], + ["add_nietnatuurlijkpersoon", "zaken", "nietnatuurlijkpersoon"], + ["change_nietnatuurlijkpersoon", "zaken", "nietnatuurlijkpersoon"], + ["delete_nietnatuurlijkpersoon", "zaken", "nietnatuurlijkpersoon"], + ["view_nietnatuurlijkpersoon", "zaken", "nietnatuurlijkpersoon"], + ["add_openbareruimte", "zaken", "openbareruimte"], + ["change_openbareruimte", "zaken", "openbareruimte"], + ["delete_openbareruimte", "zaken", "openbareruimte"], + ["view_openbareruimte", "zaken", "openbareruimte"], + ["add_organisatorischeeenheid", "zaken", "organisatorischeeenheid"], + ["change_organisatorischeeenheid", "zaken", "organisatorischeeenheid"], + ["delete_organisatorischeeenheid", "zaken", "organisatorischeeenheid"], + ["view_organisatorischeeenheid", "zaken", "organisatorischeeenheid"], + ["add_overige", "zaken", "overige"], + ["change_overige", "zaken", "overige"], + ["delete_overige", "zaken", "overige"], + ["view_overige", "zaken", "overige"], + ["add_pand", "zaken", "pand"], + ["change_pand", "zaken", "pand"], + ["delete_pand", "zaken", "pand"], + ["view_pand", "zaken", "pand"], + ["add_relevantezaakrelatie", "zaken", "relevantezaakrelatie"], + ["change_relevantezaakrelatie", "zaken", "relevantezaakrelatie"], + ["delete_relevantezaakrelatie", "zaken", "relevantezaakrelatie"], + ["view_relevantezaakrelatie", "zaken", "relevantezaakrelatie"], + ["add_resultaat", "zaken", "resultaat"], + ["change_resultaat", "zaken", "resultaat"], + ["delete_resultaat", "zaken", "resultaat"], + ["view_resultaat", "zaken", "resultaat"], + ["add_rol", "zaken", "rol"], + ["change_rol", "zaken", "rol"], + ["delete_rol", "zaken", "rol"], + ["view_rol", "zaken", "rol"], + ["add_spoorbaandeel", "zaken", "spoorbaandeel"], + ["change_spoorbaandeel", "zaken", "spoorbaandeel"], + ["delete_spoorbaandeel", "zaken", "spoorbaandeel"], + ["view_spoorbaandeel", "zaken", "spoorbaandeel"], + ["add_status", "zaken", "status"], + ["change_status", "zaken", "status"], + ["delete_status", "zaken", "status"], + ["view_status", "zaken", "status"], + ["add_subverblijfbuitenland", "zaken", "subverblijfbuitenland"], + ["change_subverblijfbuitenland", "zaken", "subverblijfbuitenland"], + ["delete_subverblijfbuitenland", "zaken", "subverblijfbuitenland"], + ["view_subverblijfbuitenland", "zaken", "subverblijfbuitenland"], + ["add_terreindeel", "zaken", "terreindeel"], + ["change_terreindeel", "zaken", "terreindeel"], + ["delete_terreindeel", "zaken", "terreindeel"], + ["view_terreindeel", "zaken", "terreindeel"], + ["add_terreingebouwdobject", "zaken", "terreingebouwdobject"], + ["change_terreingebouwdobject", "zaken", "terreingebouwdobject"], + ["delete_terreingebouwdobject", "zaken", "terreingebouwdobject"], + ["view_terreingebouwdobject", "zaken", "terreingebouwdobject"], + ["add_vestiging", "zaken", "vestiging"], + ["change_vestiging", "zaken", "vestiging"], + ["delete_vestiging", "zaken", "vestiging"], + ["view_vestiging", "zaken", "vestiging"], + ["add_waterdeel", "zaken", "waterdeel"], + ["change_waterdeel", "zaken", "waterdeel"], + ["delete_waterdeel", "zaken", "waterdeel"], + ["view_waterdeel", "zaken", "waterdeel"], + ["add_wegdeel", "zaken", "wegdeel"], + ["change_wegdeel", "zaken", "wegdeel"], + ["delete_wegdeel", "zaken", "wegdeel"], + ["view_wegdeel", "zaken", "wegdeel"], + ["add_wijk", "zaken", "wijk"], + ["change_wijk", "zaken", "wijk"], + ["delete_wijk", "zaken", "wijk"], + ["view_wijk", "zaken", "wijk"], + ["add_woonplaats", "zaken", "woonplaats"], + ["change_woonplaats", "zaken", "woonplaats"], + ["delete_woonplaats", "zaken", "woonplaats"], + ["view_woonplaats", "zaken", "woonplaats"], + ["add_wozdeelobject", "zaken", "wozdeelobject"], + ["change_wozdeelobject", "zaken", "wozdeelobject"], + ["delete_wozdeelobject", "zaken", "wozdeelobject"], + ["view_wozdeelobject", "zaken", "wozdeelobject"], + ["add_wozobject", "zaken", "wozobject"], + ["change_wozobject", "zaken", "wozobject"], + ["delete_wozobject", "zaken", "wozobject"], + ["view_wozobject", "zaken", "wozobject"], + ["add_wozwaarde", "zaken", "wozwaarde"], + ["change_wozwaarde", "zaken", "wozwaarde"], + ["delete_wozwaarde", "zaken", "wozwaarde"], + ["view_wozwaarde", "zaken", "wozwaarde"], + ["add_zaak", "zaken", "zaak"], + ["change_zaak", "zaken", "zaak"], + ["delete_zaak", "zaken", "zaak"], + ["view_zaak", "zaken", "zaak"], + ["add_zaakbesluit", "zaken", "zaakbesluit"], + ["change_zaakbesluit", "zaken", "zaakbesluit"], + ["delete_zaakbesluit", "zaken", "zaakbesluit"], + ["view_zaakbesluit", "zaken", "zaakbesluit"], + ["add_zaakeigenschap", "zaken", "zaakeigenschap"], + ["change_zaakeigenschap", "zaken", "zaakeigenschap"], + ["delete_zaakeigenschap", "zaken", "zaakeigenschap"], + ["view_zaakeigenschap", "zaken", "zaakeigenschap"], + ["add_zaakinformatieobject", "zaken", "zaakinformatieobject"], + ["change_zaakinformatieobject", "zaken", "zaakinformatieobject"], + ["delete_zaakinformatieobject", "zaken", "zaakinformatieobject"], + ["view_zaakinformatieobject", "zaken", "zaakinformatieobject"], + ["add_zaakkenmerk", "zaken", "zaakkenmerk"], + ["change_zaakkenmerk", "zaken", "zaakkenmerk"], + ["delete_zaakkenmerk", "zaken", "zaakkenmerk"], + ["view_zaakkenmerk", "zaken", "zaakkenmerk"], + ["add_zaakobject", "zaken", "zaakobject"], + ["change_zaakobject", "zaken", "zaakobject"], + ["delete_zaakobject", "zaken", "zaakobject"], + ["view_zaakobject", "zaken", "zaakobject"], + ["add_zakelijkrecht", "zaken", "zakelijkrecht"], + ["change_zakelijkrecht", "zaken", "zakelijkrecht"], + ["delete_zakelijkrecht", "zaken", "zakelijkrecht"], + ["view_zakelijkrecht", "zaken", "zakelijkrecht"], + ["add_zakelijkrechtheeftalsgerechtigde", "zaken", "zakelijkrechtheeftalsgerechtigde"], + ["change_zakelijkrechtheeftalsgerechtigde", "zaken", "zakelijkrechtheeftalsgerechtigde"], + ["delete_zakelijkrechtheeftalsgerechtigde", "zaken", "zakelijkrechtheeftalsgerechtigde"], + ["view_zakelijkrechtheeftalsgerechtigde", "zaken", "zakelijkrechtheeftalsgerechtigde"] + ] + } + }, + { + "model": "auth.group", + "fields": { + "name": "Autorisaties read", + "permissions": [ + ["view_applicatie", "authorizations", "applicatie"], + ["view_authorizationsconfig", "authorizations", "authorizationsconfig"], + ["view_autorisatie", "authorizations", "autorisatie"], + ["view_autorisatiespec", "autorisaties", "autorisatiespec"] + ] + } + }, + { + "model": "auth.group", + "fields": { + "name": "Besluiten read", + "permissions": [ + ["view_besluit", "besluiten", "besluit"], + ["view_besluitinformatieobject", "besluiten", "besluitinformatieobject"] + ] + } + }, + { + "model": "auth.group", + "fields": { + "name": "Catalogi read", + "permissions": [ + ["view_besluittype", "catalogi", "besluittype"], + ["view_catalogus", "catalogi", "catalogus"], + ["view_eigenschap", "catalogi", "eigenschap"], + ["view_eigenschapspecificatie", "catalogi", "eigenschapspecificatie"], + ["view_informatieobjecttype", "catalogi", "informatieobjecttype"], + ["view_resultaattype", "catalogi", "resultaattype"], + ["view_roltype", "catalogi", "roltype"], + ["view_statustype", "catalogi", "statustype"], + ["view_zaaktype", "catalogi", "zaaktype"], + ["view_zaaktypeinformatieobjecttype", "catalogi", "zaaktypeinformatieobjecttype"], + ["view_zaaktypenrelatie", "catalogi", "zaaktypenrelatie"] + ] + } + }, + { + "model": "auth.group", + "fields": { + "name": "Documenten read", + "permissions": [ + ["view_enkelvoudiginformatieobject", "documenten", "enkelvoudiginformatieobject"], + ["view_enkelvoudiginformatieobjectcanonical", "documenten", "enkelvoudiginformatieobjectcanonical"], + ["view_gebruiksrechten", "documenten", "gebruiksrechten"], + ["view_objectinformatieobject", "documenten", "objectinformatieobject"] + ] + } + }, + { + "model": "auth.group", + "fields": { + "name": "Zaken read", + "permissions": [ + ["view_adres", "zaken", "adres"], + ["view_buurt", "zaken", "buurt"], + ["view_gemeente", "zaken", "gemeente"], + ["view_gemeentelijkeopenbareruimte", "zaken", "gemeentelijkeopenbareruimte"], + ["view_huishouden", "zaken", "huishouden"], + ["view_inrichtingselement", "zaken", "inrichtingselement"], + ["view_kadastraleonroerendezaak", "zaken", "kadastraleonroerendezaak"], + ["view_klantcontact", "zaken", "klantcontact"], + ["view_kunstwerkdeel", "zaken", "kunstwerkdeel"], + ["view_maatschappelijkeactiviteit", "zaken", "maatschappelijkeactiviteit"], + ["view_medewerker", "zaken", "medewerker"], + ["view_natuurlijkpersoon", "zaken", "natuurlijkpersoon"], + ["view_nietnatuurlijkpersoon", "zaken", "nietnatuurlijkpersoon"], + ["view_openbareruimte", "zaken", "openbareruimte"], + ["view_organisatorischeeenheid", "zaken", "organisatorischeeenheid"], + ["view_overige", "zaken", "overige"], + ["view_pand", "zaken", "pand"], + ["view_relevantezaakrelatie", "zaken", "relevantezaakrelatie"], + ["view_resultaat", "zaken", "resultaat"], + ["view_rol", "zaken", "rol"], + ["view_spoorbaandeel", "zaken", "spoorbaandeel"], + ["view_status", "zaken", "status"], + ["view_subverblijfbuitenland", "zaken", "subverblijfbuitenland"], + ["view_terreindeel", "zaken", "terreindeel"], + ["view_terreingebouwdobject", "zaken", "terreingebouwdobject"], + ["view_vestiging", "zaken", "vestiging"], + ["view_waterdeel", "zaken", "waterdeel"], + ["view_wegdeel", "zaken", "wegdeel"], + ["view_wijk", "zaken", "wijk"], + ["view_woonplaats", "zaken", "woonplaats"], + ["view_wozdeelobject", "zaken", "wozdeelobject"], + ["view_wozobject", "zaken", "wozobject"], + ["view_wozwaarde", "zaken", "wozwaarde"], + ["view_zaak", "zaken", "zaak"], + ["view_zaakbesluit", "zaken", "zaakbesluit"], + ["view_zaakeigenschap", "zaken", "zaakeigenschap"], + ["view_zaakinformatieobject", "zaken", "zaakinformatieobject"], + ["view_zaakkenmerk", "zaken", "zaakkenmerk"], + ["view_zaakobject", "zaken", "zaakobject"], + ["view_zakelijkrecht", "zaken", "zakelijkrecht"], + ["view_zakelijkrechtheeftalsgerechtigde", "zaken", "zakelijkrechtheeftalsgerechtigde"] + ] + } + }, + { + "model": "auth.group", + "fields": { + "name": "User admin", + "permissions": [ + ["add_user", "accounts", "user"], + ["change_user", "accounts", "user"], + ["delete_user", "accounts", "user"], + ["view_user", "accounts", "user"], + ["view_group", "auth", "group"] + ] + } + }, + { + "model": "auth.group", + "fields": { + "name": "API admin", + "permissions": [ + ["add_applicatie", "authorizations", "applicatie"], + ["change_applicatie", "authorizations", "applicatie"], + ["delete_applicatie", "authorizations", "applicatie"], + ["view_applicatie", "authorizations", "applicatie"], + ["add_autorisatie", "authorizations", "autorisatie"], + ["change_autorisatie", "authorizations", "autorisatie"], + ["delete_autorisatie", "authorizations", "autorisatie"], + ["view_autorisatie", "authorizations", "autorisatie"], + ["add_autorisatiespec", "autorisaties", "autorisatiespec"], + ["change_autorisatiespec", "autorisaties", "autorisatiespec"], + ["delete_autorisatiespec", "autorisaties", "autorisatiespec"], + ["view_autorisatiespec", "autorisaties", "autorisatiespec"], + ["add_jwtsecret", "vng_api_common", "jwtsecret"], + ["change_jwtsecret", "vng_api_common", "jwtsecret"], + ["delete_jwtsecret", "vng_api_common", "jwtsecret"], + ["view_jwtsecret", "vng_api_common", "jwtsecret"] + ] + } + }, + { "model": "sites.site", "fields": { "domain": "open-zaak.local:8000", "name": "open-zaak.local:8000" } }, + { + "model": "admin_index.appgroup", + "fields": { + "order": 0, + "name": "Accounts", + "slug": "accounts", + "models": [ + ["accounts", "user"], + ["auth", "group"] + ] + } + }, + { + "model": "admin_index.appgroup", + "fields": { + "order": 1, + "name": "API Autorisaties", + "slug": "api-authorizations", + "models": [ + ["authorizations", "applicatie"], + ["zgw_consumers", "certificate"], + ["zgw_consumers", "service"] + ] + } + }, + { + "model": "admin_index.appgroup", + "fields": { + "order": 3, + "name": "Configuratie", + "slug": "configuration", + "models": [ + ["admin_index", "appgroup"], + ["config", "featureflags"], + ["drc_cmis", "cmisconfig"], + ["mozilla_django_oidc_db", "openidconnectconfig"], + ["notifications_api_common", "notificationsconfig"], + ["notifications_api_common", "subscription"], + ["selectielijst", "referentielijstconfig"], + ["sites", "site"], + ["zgw_consumers", "nlxconfig"] + ] + } + }, + { + "model": "admin_index.appgroup", + "fields": { + "order": 2, + "name": "Gegevens", + "slug": "gegevens", + "models": [ + ["besluiten", "besluit"], + ["catalogi", "catalogus"], + ["documenten", "enkelvoudiginformatieobject"], + ["zaken", "zaak"] + ] + } + }, + { + "model": "admin_index.appgroup", + "fields": { + "order": 4, + "name": "Logs", + "slug": "logs", + "models": [ + ["axes", "accessattempt"], + ["axes", "accesslog"], + ["django_db_logger", "statuslog"], + ["notifications_log", "failednotification"] + ] + } + }, + { "model": "admin_index.appgroup", "fields": { "order": 5, "name": "Handige links", "slug": "handige-links", "models": [] } }, + { "model": "admin_index.applink", "fields": { "order": 0, "app_group": ["configuration"], "name": "Service configuration", "link": "/admin/config/detail/" } }, + { "model": "admin_index.applink", "fields": { "order": 0, "app_group": ["handige-links"], "name": "Documentatie", "link": "https://open-zaak.readthedocs.org" } }, + { + "model": "admin_index.applink", + "fields": { + "order": 1, + "app_group": ["handige-links"], + "name": "Mailing list", + "link": "https://lists.publiccode.net/hyperkitty/hyperkitty/list/openzaak-discuss@lists.publiccode.net/" + } + }, + { + "model": "admin_index.applink", + "fields": { + "order": 2, + "app_group": ["handige-links"], + "name": "Opgeven als contactpersoon bij veiligheidslekken", + "link": "https://odoo.publiccode.net/survey/start/086e0627-8bc0-4b65-8aa9-f6872aba89d0" + } + }, + { "model": "admin_index.applink", "fields": { "order": 3, "app_group": ["handige-links"], "name": "Website", "link": "https://openzaak.org/" } }, + { "model": "admin_index.applink", "fields": { "order": 4, "app_group": ["handige-links"], "name": "Slack (kanaal #open-zaak)", "link": "https://samenorganiseren.slack.com/" } }, + { "model": "admin_index.applink", "fields": { "order": 5, "app_group": ["handige-links"], "name": "Github", "link": "https://github.com/open-zaak/open-zaak" } }, + { + "model": "admin_index.applink", + "fields": { "order": 6, "app_group": ["handige-links"], "name": "VNG-Standaard", "link": "https://www.vngrealisatie.nl/producten/api-standaarden-zaakgericht-werken" } + }, + { + "model": "admin_index.applink", + "fields": { "order": 7, "app_group": ["handige-links"], "name": "VNG-Standaarddocumentatie", "link": "https://vng-realisatie.github.io/gemma-zaken/" } + }, + { + "model": "admin_index.applink", + "fields": { + "order": 8, + "app_group": ["handige-links"], + "name": "Common Ground community", + "link": "https://commonground.nl/groups/view/d9c2f667-2f3e-4153-a79b-57dde7f56cc2/team-open-zaak" + } + }, + { + "model": "axes.accesslog", + "pk": 1, + "fields": { + "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36", + "ip_address": "10.201.0.1", + "username": "admin", + "http_accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", + "path_info": "/admin/login/", + "attempt_time": "2023-03-21T12:46:05.583Z", + "logout_time": null + } + }, + { + "model": "axes.accesslog", + "pk": 2, + "fields": { + "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36", + "ip_address": "10.201.0.1", + "username": "admin", + "http_accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", + "path_info": "/admin/login/", + "attempt_time": "2023-03-21T12:54:51.201Z", + "logout_time": null + } + }, + { + "model": "axes.accesslog", + "pk": 3, + "fields": { + "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36", + "ip_address": "10.201.0.1", + "username": "admin", + "http_accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", + "path_info": "/admin/login/", + "attempt_time": "2023-03-21T12:57:11.802Z", + "logout_time": null + } + }, + { "model": "vng_api_common.jwtsecret", "pk": 1, "fields": { "identifier": "drc_api_tests", "secret": "secret" } }, + { "model": "vng_api_common.jwtsecret", "pk": 2, "fields": { "identifier": "drc_api_tests_limited", "secret": "secret_limited" } }, + { "model": "vng_api_common.jwtsecret", "pk": 3, "fields": { "identifier": "openzaak", "secret": "openzaak" } }, + { "model": "vng_api_common.jwtsecret", "pk": 4, "fields": { "identifier": "nrc", "secret": "nrc" } }, + { "model": "vng_api_common.jwtsecret", "pk": 5, "fields": { "identifier": "drc", "secret": "drc" } }, + { "model": "vng_api_common.jwtsecret", "pk": 6, "fields": { "identifier": "alfresco-drc", "secret": "RnaD8uuCqgETFKeX" } }, + { "model": "vng_api_common.jwtsecret", "pk": 8, "fields": { "identifier": "drc_api_tests_readonly", "secret": "secret_readonly" } }, + { "model": "vng_api_common.jwtsecret", "pk": 9, "fields": { "identifier": "drc_api_tests_wrong_scope", "secret": "secret_wrong_scope" } }, + { + "model": "authorizations.applicatie", + "pk": 1, + "fields": { "uuid": "4223b169-ebc7-4410-900f-0ea2bf75dd83", "client_ids": "[\"drc_api_tests\"]", "label": "zgw api tests", "heeft_alle_autorisaties": true } + }, + { + "model": "authorizations.applicatie", + "pk": 2, + "fields": { "uuid": "5ad64444-433d-41f4-a08a-a76fb0ad8d71", "client_ids": "[\"nrc\"]", "label": "nrc", "heeft_alle_autorisaties": true } + }, + { + "model": "authorizations.applicatie", + "pk": 3, + "fields": { "uuid": "f78d0bca-8099-4eea-a8fd-40e2f0a1ba75", "client_ids": "[\"openzaak\"]", "label": "openzaak", "heeft_alle_autorisaties": true } + }, + { + "model": "authorizations.applicatie", + "pk": 4, + "fields": { "uuid": "809e7ef5-6ca7-44b5-8caf-39549c9a1d82", "client_ids": "[\"drc\"]", "label": "drc", "heeft_alle_autorisaties": true } + }, + { + "model": "authorizations.applicatie", + "pk": 5, + "fields": { + "uuid": "b91d00dc-c762-4211-9c10-5918c81e5de6", + "client_ids": "[\"b91d00dc-c762-4211-9c10-5918c81e5de6\"]", + "label": "DRC client", + "heeft_alle_autorisaties": false + } + }, + { + "model": "authorizations.applicatie", + "pk": 7, + "fields": { "uuid": "75c2e359-f622-4b3b-9f22-46d1b526535e", "client_ids": "[\"drc_api_tests_readonly\"]", "label": "drc_api_tests_readonly", "heeft_alle_autorisaties": false } + }, + { + "model": "authorizations.applicatie", + "pk": 8, + "fields": { + "uuid": "75c2e359-f622-4b3b-9f22-46d1b526515e", + "client_ids": "[\"drc_api_tests_wrong_scope\"]", + "label": "drc_api_tests_wrong_scope", + "heeft_alle_autorisaties": false + } + }, + { + "model": "authorizations.autorisatie", + "pk": 1, + "fields": { + "applicatie": 5, + "component": "ac", + "scopes": "[\"autorisaties.lezen\"]", + "zaaktype": "", + "informatieobjecttype": "", + "besluittype": "", + "max_vertrouwelijkheidaanduiding": "" + } + }, + { + "model": "authorizations.autorisatie", + "pk": 2, + "fields": { + "applicatie": 5, + "component": "nrc", + "scopes": "[\"notificaties.consumeren\", \"notificaties.publiceren\"]", + "zaaktype": "", + "informatieobjecttype": "", + "besluittype": "", + "max_vertrouwelijkheidaanduiding": "" + } + }, + { + "model": "authorizations.autorisatie", + "pk": 4, + "fields": { + "applicatie": 5, + "component": "drc", + "scopes": "[\"documenten.lezen\", \"documenten.aanmaken\"]", + "zaaktype": "", + "informatieobjecttype": "http://open-zaak.local:8000/catalogi/api/v1/informatieobjecttypen/4a8c20e7-d561-41a8-b80f-0603acdb8281", + "besluittype": "", + "max_vertrouwelijkheidaanduiding": "beperkt_openbaar" + } + }, + { + "model": "authorizations.autorisatie", + "pk": 6, + "fields": { + "applicatie": 7, + "component": "drc", + "scopes": "[\"documenten.lezen\"]", + "zaaktype": "", + "informatieobjecttype": "http://open-zaak.local:8000/catalogi/api/v1/informatieobjecttypen/4a8c20e7-d561-41a8-b80f-0603acdb8281", + "besluittype": "", + "max_vertrouwelijkheidaanduiding": "openbaar" + } + }, + { + "model": "authorizations.autorisatie", + "pk": 7, + "fields": { + "applicatie": 8, + "component": "ztc", + "scopes": "[\"catalogi.lezen\"]", + "zaaktype": "", + "informatieobjecttype": "", + "besluittype": "", + "max_vertrouwelijkheidaanduiding": "" + } + }, + { "model": "notifications.notificationsconfig", "pk": 1, "fields": { "api_root": "http://open-notificaties.local:8000/api/v1/" } }, + { + "model": "notifications_api_common.notificationsconfig", + "pk": 1, + "fields": { "notifications_api_service": 2, "notification_delivery_max_retries": 5, "notification_delivery_retry_backoff": 3, "notification_delivery_retry_backoff_max": 48 } + }, + { + "model": "notifications_api_common.notificationsconfig", + "pk": 2, + "fields": { "notifications_api_service": 1, "notification_delivery_max_retries": 5, "notification_delivery_retry_backoff": 3, "notification_delivery_retry_backoff_max": 48 } + }, + { + "model": "zgw_consumers.service", + "pk": 1, + "fields": { + "label": "referentielijsten", + "oas": "https://referentielijsten-api.vng.cloud/api/v1/schema/openapi.yaml", + "oas_file": "", + "api_type": "orc", + "api_root": "https://referentielijsten-api.vng.cloud/api/v1/", + "client_id": "", + "secret": "", + "auth_type": "no_auth", + "header_key": "", + "header_value": "", + "nlx": "", + "user_id": "", + "user_representation": "", + "client_certificate": null, + "server_certificate": null + } + }, + { + "model": "zgw_consumers.service", + "pk": 2, + "fields": { + "label": "notificaties", + "oas": "http://open-notificaties.local:8000/api/v1/schema/openapi.yaml", + "oas_file": "", + "api_type": "nrc", + "api_root": "http://open-notificaties.local:8000/api/v1/", + "client_id": "openzaak", + "secret": "openzaak", + "auth_type": "zgw", + "header_key": "", + "header_value": "", + "nlx": "", + "user_id": "openzaak", + "user_representation": "OpenZaak", + "client_certificate": null, + "server_certificate": null + } + }, + { + "model": "zgw_consumers.service", + "pk": 3, + "fields": { + "label": "openzaak zaken", + "oas": "http://open-zaak.local:8000/api/v1/schema/openapi.yaml", + "oas_file": "", + "api_type": "zrc", + "api_root": "http://open-zaak.local:8000/zaken/api/v1/", + "client_id": "openzaak", + "secret": "openzaak", + "auth_type": "zgw", + "header_key": "", + "header_value": "", + "nlx": "", + "user_id": "openzaak", + "user_representation": "OpenZaak", + "client_certificate": null, + "server_certificate": null + } + }, + { + "model": "zgw_consumers.service", + "pk": 4, + "fields": { + "label": "drc gemma", + "oas": "http://drc.local:8000/api/v1/schema/openapi.yaml", + "oas_file": "", + "api_type": "drc", + "api_root": "http://drc.local:8000/api/v1/", + "client_id": "openzaak", + "secret": "openzaak", + "auth_type": "zgw", + "header_key": "", + "header_value": "", + "nlx": "", + "user_id": "openzaak", + "user_representation": "OpenZaak", + "client_certificate": null, + "server_certificate": null + } + }, + { + "model": "zgw_consumers.service", + "pk": 5, + "fields": { + "label": "drc alfresco", + "oas": "http://drc-docker-platform.local:8080/alfresco/service/drc/v1/schema/openapi.yaml", + "oas_file": "", + "api_type": "drc", + "api_root": "http://drc-docker-platform.local:8080/alfresco/service/drc/v1/", + "client_id": "drc_api_tests", + "secret": "secret", + "auth_type": "zgw", + "header_key": "", + "header_value": "", + "nlx": "", + "user_id": "openzaak", + "user_representation": "OpenZaak", + "client_certificate": null, + "server_certificate": null + } + }, + { + "model": "zgw_consumers.service", + "pk": 6, + "fields": { + "label": "drc openzaak", + "oas": "http://open-zaak.local:8000/documenten/api/v1/schema/openapi.yaml", + "oas_file": "", + "api_type": "drc", + "api_root": "http://open-zaak.local:8000/documenten/api/v1/", + "client_id": "openzaak", + "secret": "openzaak", + "auth_type": "zgw", + "header_key": "", + "header_value": "", + "nlx": "", + "user_id": "openzaak", + "user_representation": "OpenZaak", + "client_certificate": null, + "server_certificate": null + } + }, + { + "model": "zgw_consumers.service", + "pk": 7, + "fields": { + "label": "openzaak catalogi", + "oas": "http://open-zaak.local:8000/catalogi/api/v1/schema/openapi.yaml", + "oas_file": "", + "api_type": "ztc", + "api_root": "http://open-zaak.local:8000/catalogi/api/v1/", + "client_id": "openzaak", + "secret": "openzaak", + "auth_type": "zgw", + "header_key": "", + "header_value": "", + "nlx": "", + "user_id": "openzaak", + "user_representation": "OpenZaak", + "client_certificate": null, + "server_certificate": null + } + }, + { + "model": "zgw_consumers.service", + "pk": 8, + "fields": { + "label": "openzaak besluiten", + "oas": "http://open-zaak.local:8000/besluiten/api/v1/schema/openapi.yaml", + "oas_file": "", + "api_type": "brc", + "api_root": "http://open-zaak.local:8000/besluiten/api/v1/", + "client_id": "openzaak", + "secret": "openzaak", + "auth_type": "zgw", + "header_key": "", + "header_value": "", + "nlx": "", + "user_id": "openzaak", + "user_representation": "OpenZaak", + "client_certificate": null, + "server_certificate": null + } + }, + { + "model": "zgw_consumers.service", + "pk": 9, + "fields": { + "label": "openzaak autorisaties", + "oas": "http://open-zaak.local:8000/autorisaties/api/v1/schema/openapi.yaml", + "oas_file": "", + "api_type": "ac", + "api_root": "http://open-zaak.local:8000/autorisaties/api/v1/", + "client_id": "openzaak", + "secret": "openzaak", + "auth_type": "zgw", + "header_key": "", + "header_value": "", + "nlx": "", + "user_id": "openzaak", + "user_representation": "OpenZaak", + "client_certificate": null, + "server_certificate": null + } + }, + { + "model": "mozilla_django_oidc_db.openidconnectconfig", + "pk": 1, + "fields": { + "enabled": false, + "oidc_rp_client_id": "", + "oidc_rp_client_secret": "", + "oidc_rp_sign_algo": "HS256", + "oidc_rp_scopes_list": "[\"openid\", \"email\", \"profile\"]", + "oidc_op_discovery_endpoint": "", + "oidc_op_jwks_endpoint": "", + "oidc_op_authorization_endpoint": "", + "oidc_op_token_endpoint": "", + "oidc_op_user_endpoint": "", + "oidc_rp_idp_sign_key": "", + "oidc_use_nonce": true, + "oidc_nonce_size": 32, + "oidc_state_size": 32, + "oidc_exempt_urls": "[]", + "username_claim": "sub", + "claim_mapping": { "email": "email", "last_name": "family_name", "first_name": "given_name" }, + "groups_claim": "roles", + "sync_groups": true, + "sync_groups_glob_pattern": "*", + "make_users_staff": false, + "default_groups": [] + } + }, + { + "model": "accounts.user", + "fields": { + "password": "pbkdf2_sha256$260000$HH45WYtJ8SlX82rTpVQMpT$0YNb73XEAjUk7hz+PLkZ22NzL+7YUBSC8tw98iGsajs=", + "last_login": "2023-03-21T12:57:11.795Z", + "is_superuser": true, + "username": "admin", + "first_name": "", + "last_name": "", + "email": "admin@admin.org", + "is_staff": true, + "is_active": true, + "date_joined": "2019-12-21T14:04:19.572Z", + "groups": [], + "user_permissions": [] + } + }, + { + "model": "catalogi.catalogus", + "pk": 1, + "fields": { + "_etag": "", + "_admin_name": "Test", + "uuid": "6d9de12a-d12d-40ba-8dbd-14a039bf5b68", + "domein": "TST", + "rsin": "123456782", + "contactpersoon_beheer_naam": "Test", + "contactpersoon_beheer_telefoonnummer": "", + "contactpersoon_beheer_emailadres": "" + } + }, + { + "model": "catalogi.catalogus", + "pk": 2, + "fields": { + "_etag": "ee8234abad0323db5734665e845f58de", + "_admin_name": "", + "uuid": "d43c4c81-251c-46c7-beb4-e34752094fff", + "domein": "ULNJH", + "rsin": "000000000", + "contactpersoon_beheer_naam": "Test Persoon", + "contactpersoon_beheer_telefoonnummer": "", + "contactpersoon_beheer_emailadres": "" + } + }, + { + "model": "catalogi.informatieobjecttype", + "pk": 1, + "fields": { + "_etag": "", + "datum_begin_geldigheid": "2021-01-12", + "datum_einde_geldigheid": null, + "concept": false, + "uuid": "4a8c20e7-d561-41a8-b80f-0603acdb8281", + "omschrijving": "Test informatieobjecttype", + "vertrouwelijkheidaanduiding": "confidentieel", + "catalogus": 1 + } + }, + { "model": "config.internalservice", "pk": 1, "fields": { "api_type": "ac", "enabled": true } }, + { "model": "config.internalservice", "pk": 2, "fields": { "api_type": "zrc", "enabled": true } }, + { "model": "config.internalservice", "pk": 3, "fields": { "api_type": "ztc", "enabled": true } }, + { "model": "config.internalservice", "pk": 4, "fields": { "api_type": "drc", "enabled": true } }, + { "model": "config.internalservice", "pk": 5, "fields": { "api_type": "brc", "enabled": true } }, + { + "model": "selectielijst.referentielijstconfig", + "pk": 1, + "fields": { "api_root": "https://selectielijst.openzaak.nl/api/v1/", "allowed_years": "[\"2017\", \"2020\"]", "default_year": 2017 } + }, + { + "model": "admin.logentry", + "pk": 1, + "fields": { + "action_time": "2023-03-21T12:57:22.843Z", + "user": ["admin"], + "content_type": ["notifications_api_common", "notificationsconfig"], + "object_id": "1", + "object_repr": "Notificaties-API-configuratie (http://open-notificaties.local:8000/api/v1/)", + "action_flag": 2, + "change_message": "[{\"changed\": {\"fields\": [\"Notifications api service\"]}}]" + } + } +] diff --git a/purge.sh b/purge.sh new file mode 100755 index 0000000..cbedff5 --- /dev/null +++ b/purge.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +mvn clean + +docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q) || true && + docker volume rm docker_vol_drc-docker-platform_alf_data -f && + docker volume rm docker_vol_drc-docker-platform_solr_data -f && + docker volume rm docker_vol_drc-docker-platform_shared_file_store -f && + docker volume rm docker_vol_drc_db -f && + docker volume rm docker_vol_drc_media -f && + docker volume rm docker_vol_drc_private_media -f From d68d85398088d68a011b46dd5f53948e10eeca7a Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Tue, 21 Mar 2023 16:55:26 +0100 Subject: [PATCH 07/33] =?UTF-8?q?=F0=9F=9A=A7=20updated=20code=20to=20comp?= =?UTF-8?q?lete=20tests,=20still=2019/49=20failed.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 4 +- docker/docker-compose.yml | 1 + docker/fixtures/drc/0005-applicatie.json | 2 +- .../drc/dataprovider/DRCDataProvider.java | 56 +++++++++++-------- .../nl/contezza/drc/service/EIOService.java | 13 +++-- 5 files changed, 46 insertions(+), 30 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index e311e68..4229ba0 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -77,6 +77,8 @@ }, "java.compile.nullAnalysis.mode": "automatic", "cSpell.words": [ - "bestandsomvang" + "bestandsomvang", + "contezza", + "informatieobjecttype" ] } \ No newline at end of file diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 1de478b..ab5729a 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -150,6 +150,7 @@ services: - ALLOWED_HOSTS=drc.local,drc.local:8000,localhost,localhost:8000 - SENDFILE_BACKEND=sendfile.backends.simple - PYTHONUNBUFFERED=1 + - DEBUG=True ports: - 8002:8000 volumes: diff --git a/docker/fixtures/drc/0005-applicatie.json b/docker/fixtures/drc/0005-applicatie.json index 4eba2e8..a8287f4 100644 --- a/docker/fixtures/drc/0005-applicatie.json +++ b/docker/fixtures/drc/0005-applicatie.json @@ -14,7 +14,7 @@ "pk": 1, "fields": { "label": "NRC", - "oas": "http://open-notificaties.local:8000/api/v1/schema/openapi.yml", + "oas": "http://open-notificaties.local:8000/api/v1/schema/openapi.yaml", "oas_file": "", "api_type": "nrc", "api_root": "http://open-notificaties.local:8000/api/v1/", diff --git a/src/main/java/nl/contezza/drc/dataprovider/DRCDataProvider.java b/src/main/java/nl/contezza/drc/dataprovider/DRCDataProvider.java index 0798a6c..79ad488 100644 --- a/src/main/java/nl/contezza/drc/dataprovider/DRCDataProvider.java +++ b/src/main/java/nl/contezza/drc/dataprovider/DRCDataProvider.java @@ -47,13 +47,14 @@ public static String testCreate(String iot) { json.put("taal", "eng"); json.put("bestandsnaam", "dummy.txt"); json.put("inhoud", Base64.getEncoder().encodeToString("some file content".getBytes())); + json.put("bestandsomvang", "some file content".getBytes().length); json.put("link", "http://een.link"); json.put("beschrijving", "test_beschrijving"); json.put("informatieobjecttype", iot); json.put("vertrouwelijkheidaanduiding", "openbaar"); return json.toString(); } - + @DataProvider(name = "test_create") public static String testCreateReqOnly(String iot) { JSONObject json = new JSONObject(); @@ -63,12 +64,13 @@ public static String testCreateReqOnly(String iot) { json.put("auteur", "test_auteur"); json.put("taal", "eng"); json.put("inhoud", Base64.getEncoder().encodeToString("some file content".getBytes())); + json.put("bestandsomvang", "some file content".getBytes().length); json.put("informatieobjecttype", iot); return json.toString(); } - + @DataProvider(name = "test_create") - public static String testCreate(String iot, Date creatiedatum ) { + public static String testCreate(String iot, Date creatiedatum) { JSONObject json = new JSONObject(); json.put("identificatie", UUID.randomUUID().toString()); json.put("bronorganisatie", "159351741"); @@ -79,6 +81,7 @@ public static String testCreate(String iot, Date creatiedatum ) { json.put("taal", "eng"); json.put("bestandsnaam", "dummy.txt"); json.put("inhoud", Base64.getEncoder().encodeToString("some file content".getBytes())); + json.put("bestandsomvang", "some file content".getBytes().length); json.put("link", "http://een.link"); json.put("beschrijving", "test_beschrijving"); json.put("informatieobjecttype", iot); @@ -98,34 +101,37 @@ public static String testCreate(String iot, String beschrijving, String inhoud) json.put("taal", "eng"); json.put("bestandsnaam", "dummy.txt"); json.put("inhoud", Base64.getEncoder().encodeToString(inhoud.getBytes())); + json.put("bestandsomvang", inhoud.getBytes().length); json.put("link", "http://een.link"); json.put("beschrijving", beschrijving); json.put("informatieobjecttype", iot); json.put("vertrouwelijkheidaanduiding", "openbaar"); return json.toString(); } - + @DataProvider(name = "test_create") public static String testCreate(String iot, String beschrijving, String inhoud, Date creatiedatum) { JSONObject json = new JSONObject(); json.put("identificatie", UUID.randomUUID().toString()); json.put("bronorganisatie", "159351741"); - json.put("creatiedatum", StringDate.formatDate(creatiedatum)); + json.put("creatiedatum", StringDate.formatDate(creatiedatum)); json.put("titel", "detailed summary"); json.put("auteur", "test_auteur"); json.put("formaat", "txt"); json.put("taal", "eng"); json.put("bestandsnaam", "dummy.txt"); json.put("inhoud", Base64.getEncoder().encodeToString(inhoud.getBytes())); + json.put("bestandsomvang", inhoud.getBytes().length); json.put("link", "http://een.link"); json.put("beschrijving", beschrijving); json.put("informatieobjecttype", iot); json.put("vertrouwelijkheidaanduiding", "openbaar"); return json.toString(); } - + @DataProvider(name = "test_create") - public static String testCreate(String iot, String beschrijving, String inhoud, String vertrouwelijkheidaanduiding) { + public static String testCreate(String iot, String beschrijving, String inhoud, + String vertrouwelijkheidaanduiding) { JSONObject json = new JSONObject(); json.put("identificatie", UUID.randomUUID().toString()); json.put("bronorganisatie", "159351741"); @@ -136,15 +142,17 @@ public static String testCreate(String iot, String beschrijving, String inhoud, json.put("taal", "eng"); json.put("bestandsnaam", "dummy.txt"); json.put("inhoud", Base64.getEncoder().encodeToString(inhoud.getBytes())); + json.put("bestandsomvang", inhoud.getBytes().length); json.put("link", "http://een.link"); json.put("beschrijving", beschrijving); json.put("informatieobjecttype", iot); json.put("vertrouwelijkheidaanduiding", vertrouwelijkheidaanduiding); return json.toString(); } - + @DataProvider(name = "test_create") - public static String testCreate(String iot, String beschrijving, String inhoud, String vertrouwelijkheidaanduiding, String bronorganisatie) { + public static String testCreate(String iot, String beschrijving, String inhoud, String vertrouwelijkheidaanduiding, + String bronorganisatie) { JSONObject json = new JSONObject(); json.put("identificatie", UUID.randomUUID().toString()); json.put("bronorganisatie", bronorganisatie); @@ -155,6 +163,7 @@ public static String testCreate(String iot, String beschrijving, String inhoud, json.put("taal", "eng"); json.put("bestandsnaam", "dummy.txt"); json.put("inhoud", Base64.getEncoder().encodeToString(inhoud.getBytes())); + json.put("bestandsomvang", inhoud.getBytes().length); json.put("link", "http://een.link"); json.put("beschrijving", beschrijving); json.put("informatieobjecttype", iot); @@ -174,16 +183,16 @@ public static String testCreate(String iot, String indentificatie) { json.put("taal", "eng"); json.put("bestandsnaam", "dummy.txt"); json.put("inhoud", Base64.getEncoder().encodeToString("some file content".getBytes())); + json.put("bestandsomvang", "some file content".getBytes().length); json.put("link", "http://een.link"); json.put("beschrijving", "test_beschrijving"); json.put("informatieobjecttype", iot); json.put("vertrouwelijkheidaanduiding", "openbaar"); return json.toString(); } - @DataProvider(name = "test_create") - public static String testCreate(String iot, Object inhoud) { + public static String testCreate(String iot, JSONArray inhoud) { JSONObject json = new JSONObject(); json.put("identificatie", UUID.randomUUID().toString()); json.put("bronorganisatie", "159351741"); @@ -194,6 +203,7 @@ public static String testCreate(String iot, Object inhoud) { json.put("taal", "eng"); json.put("bestandsnaam", "dummy.txt"); json.put("inhoud", inhoud); + json.put("bestandsomvang", inhoud.toString().getBytes().length); json.put("link", "http://een.link"); json.put("beschrijving", "test_beschrijving"); json.put("informatieobjecttype", iot); @@ -213,6 +223,7 @@ public static String testIntegrityCreate(String iot, JSONObject integriteit) { json.put("taal", "eng"); json.put("bestandsnaam", "dummy.txt"); json.put("inhoud", Base64.getEncoder().encodeToString("some file content".getBytes())); + json.put("bestandsomvang", "some file content".getBytes().length); json.put("informatieobjecttype", iot); if (integriteit == null) { json.put("integriteit", JSONObject.NULL); @@ -229,7 +240,7 @@ public static String randomString(int len) { sb.append(AB.charAt(rnd.nextInt(AB.length()))); return sb.toString(); } - + @DataProvider(name = "create_zaaktype") public static String createZaakType(String catalogusUrl) { JSONObject json = new JSONObject(); @@ -249,7 +260,8 @@ public static String createZaakType(String catalogusUrl) { json.put("referentieproces", new JSONObject("{\"naam\":\"test_naam\", \"link\" : \"\"}")); json.put("catalogus", catalogusUrl); json.put("besluittypen", new JSONArray()); - // json.put("selectielijstProcestype", "https://referentielijsten-api.vng.cloud/api/v1/procestypen/941de99f-b702-4b3e-9df4-db370f457bea"); + // json.put("selectielijstProcestype", + // "https://referentielijsten-api.vng.cloud/api/v1/procestypen/941de99f-b702-4b3e-9df4-db370f457bea"); json.put("gerelateerdeZaaktypen", new JSONArray()); json.put("beginGeldigheid", StringDate.toDateString(2019, 1, 1)); json.put("versiedatum", StringDate.toDateString(2019, 1, 1)); @@ -288,27 +300,27 @@ public static String createZio(String informatieobjectUrl, String zaakUrl) { json.put("omschrijving", "test_omschrijving"); return json.toString(); } - + @DataProvider(name = "update_partial_ac") - public static String updatePartialAC(JSONArray clientIds, JSONArray scopes, String iotUrl, String maxVertrouwelijkheid) { - + public static String updatePartialAC(JSONArray clientIds, JSONArray scopes, String iotUrl, + String maxVertrouwelijkheid) { + JSONObject comp = new JSONObject(); comp.put("component", "drc"); comp.put("scopes", scopes); comp.put("informatieobjecttype", iotUrl); comp.put("maxVertrouwelijkheidaanduiding", maxVertrouwelijkheid); - - + JSONArray arr = new JSONArray().put(comp); - + JSONObject json = new JSONObject(); json.put("clientIds", clientIds); - //json.put("label", "Test"); + // json.put("label", "Test"); json.put("autorisaties", arr); json.put("heeftAlleAutorisaties", false); return json.toString(); } - + @DataProvider(name = "update_partial_ac") public static String updatePartialAC(JSONArray clientIds, JSONArray autorisaties, Boolean heeftAlleAutorisaties) { JSONObject json = new JSONObject(); @@ -326,7 +338,7 @@ public static String createGebruiksrecht(String eioUrl) { json.put("omschrijvingVoorwaarden", "Test"); return json.toString(); } - + @DataProvider(name = "unlock") public static String unlock(String lockId) { JSONObject json = new JSONObject(); diff --git a/src/main/java/nl/contezza/drc/service/EIOService.java b/src/main/java/nl/contezza/drc/service/EIOService.java index 5d31f75..79e7e38 100644 --- a/src/main/java/nl/contezza/drc/service/EIOService.java +++ b/src/main/java/nl/contezza/drc/service/EIOService.java @@ -6,6 +6,7 @@ import java.util.HashMap; import java.util.Map; +import org.json.JSONArray; import org.json.JSONObject; import io.restassured.response.Response; @@ -35,7 +36,7 @@ public Response testCreate(String iot) { .response(); // @formatter:on } - + public Response testCreate(JSONObject jsonObject) { // @formatter:off return given() @@ -87,8 +88,6 @@ public Response testCreate(String iot, String beschrijving, String inhoud) { .response(); // @formatter:on } - - public Response testCreate(String iot, String beschrijving, String inhoud, Date creatiedatum) { // @formatter:off @@ -142,7 +141,8 @@ public Response testCreate(String iot, String beschrijving, String inhoud, Strin // @formatter:on } - public Response testCreate(String iot, String beschrijving, String inhoud, String vertrouwelijkheidaanduiding, String bronorganisatie) { + public Response testCreate(String iot, String beschrijving, String inhoud, String vertrouwelijkheidaanduiding, + String bronorganisatie) { // @formatter:off return given() .spec(DRCRequestSpecification.getDefault()) @@ -155,7 +155,7 @@ public Response testCreate(String iot, String beschrijving, String inhoud, Strin // @formatter:on } - public Response testCreate(String iot, Object inhoud) { + public Response testCreate(String iot, JSONArray inhoud) { // @formatter:off return given() .spec(DRCRequestSpecification.getDefault()) @@ -349,7 +349,8 @@ public Response listEIO(String identificatie, String bronorganisatie, Integer pa // @formatter:on } - public Response listEIO(RequestSpecification requestSpecification, String identificatie, String bronorganisatie, Integer page) { + public Response listEIO(RequestSpecification requestSpecification, String identificatie, String bronorganisatie, + Integer page) { Map params = new HashMap(); if (identificatie != null) { params.put("identificatie", identificatie); From c5d082d894ff0dd4c87b7f08310669151bfde171 Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Tue, 21 Mar 2023 19:48:59 +0100 Subject: [PATCH 08/33] =?UTF-8?q?=F0=9F=9A=A7=20still=2013/49=20to=20to=20?= =?UTF-8?q?fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...digInformatieObjectVersionHistoryTest.java | 129 ++++++++++++------ 1 file changed, 85 insertions(+), 44 deletions(-) diff --git a/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectVersionHistoryTest.java b/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectVersionHistoryTest.java index def0c93..50ccea1 100644 --- a/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectVersionHistoryTest.java +++ b/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectVersionHistoryTest.java @@ -18,6 +18,8 @@ //@Log4j2 public class EnkelvoudigInformatieObjectVersionHistoryTest extends RestTest { + private final String SAMPLE_CONTENT = "some file content"; + /** * Create necessary dependencies. */ @@ -32,17 +34,21 @@ public void init() { json = new JsonPath(ztcService.createInformatieObjectType(catalogusUrl).asString()); informatieobjecttypeUrl = json.getString("url").replace(ZTC_BASE_URI, ZTC_DOCKER_URI); - Response res = ztcService.publishInformatieObjectType(informatieobjecttypeUrl.substring(informatieobjecttypeUrl.lastIndexOf('/') + 1).trim()); + Response res = ztcService.publishInformatieObjectType( + informatieobjecttypeUrl.substring(informatieobjecttypeUrl.lastIndexOf('/') + 1).trim()); Assert.assertEquals(res.getStatusCode(), 200); } /** - * See {@link python code}. + * See {@link python + * code}. */ @Test(groups = "EnkelvoudigInformatieObjectVersionHistory") public void test_eio_update() { EIOService eioService = new EIOService(); - JsonPath json = new JsonPath(eioService.testCreate(informatieobjecttypeUrl, "beschrijving1", "some content").asString()); + JsonPath json = new JsonPath( + eioService.testCreate(informatieobjecttypeUrl, "beschrijving1", "some content").asString()); JSONObject createdEio = new JSONObject(json.prettify()); String eioUrl = json.getString("url"); @@ -52,7 +58,8 @@ public void test_eio_update() { JSONObject body = new JSONObject(); body.put("beschrijving", "beschrijving2"); - body.put("inhoud", Base64.getEncoder().encodeToString("some file content".getBytes())); + body.put("inhoud", Base64.getEncoder().encodeToString(SAMPLE_CONTENT.getBytes())); + body.put("bestandsomvang", SAMPLE_CONTENT.getBytes().length); body.put("lock", json.getString("lock")); JSONObject mergedJson = mergeJSONObjects(createdEio, body); @@ -75,12 +82,15 @@ public void test_eio_update() { } /** - * See {@link python code}. + * See {@link python + * code}. */ @Test(groups = "EnkelvoudigInformatieObjectVersionHistory") public void test_eio_partial_update() { EIOService eioService = new EIOService(); - JsonPath json = new JsonPath(eioService.testCreate(informatieobjecttypeUrl, "beschrijving1", "some content").asString()); + JsonPath json = new JsonPath( + eioService.testCreate(informatieobjecttypeUrl, "beschrijving1", "some content").asString()); String eioUrl = json.getString("url"); @@ -89,7 +99,8 @@ public void test_eio_partial_update() { JSONObject body = new JSONObject(); body.put("beschrijving", "beschrijving2"); - body.put("inhoud", Base64.getEncoder().encodeToString("some file content".getBytes())); + body.put("inhoud", Base64.getEncoder().encodeToString(SAMPLE_CONTENT.getBytes())); + body.put("bestandsomvang", SAMPLE_CONTENT.getBytes().length); body.put("lock", json.getString("lock")); // Update EIO @@ -97,7 +108,7 @@ public void test_eio_partial_update() { Assert.assertEquals(res.getStatusCode(), 200); json = new JsonPath(res.body().asString()); - + Assert.assertEquals(eioUrl, json.getString("url")); Assert.assertEquals(json.getString("beschrijving"), "beschrijving2"); Assert.assertEquals(json.getInt("versie"), 2); @@ -109,12 +120,15 @@ public void test_eio_partial_update() { } /** - * See {@link python code}. + * See {@link python + * code}. */ @Test(groups = "EnkelvoudigInformatieObjectVersionHistory") public void test_eio_delete() { EIOService eioService = new EIOService(); - JsonPath json = new JsonPath(eioService.testCreate(informatieobjecttypeUrl, "beschrijving1", "some content").asString()); + JsonPath json = new JsonPath( + eioService.testCreate(informatieobjecttypeUrl, "beschrijving1", "some content").asString()); String eioUrl = json.getString("url"); @@ -123,31 +137,31 @@ public void test_eio_delete() { JSONObject body = new JSONObject(); body.put("beschrijving", "beschrijving2"); - body.put("inhoud", Base64.getEncoder().encodeToString("some file content".getBytes())); + body.put("inhoud", Base64.getEncoder().encodeToString(SAMPLE_CONTENT.getBytes())); + body.put("bestandsomvang", SAMPLE_CONTENT.getBytes().length); body.put("lock", json.getString("lock")); eioService.partialUpdate(eioUrl, body); - // Delete EIO + // Cannot destroy locked objects Response res = eioService.delete(eioUrl); + Assert.assertEquals(res.getStatusCode(), 400); - Assert.assertEquals(res.getStatusCode(), 204); - - // Validate EIO not exists + // You can retrieve locked file res = eioService.getEIO(eioUrl, 1); - Assert.assertEquals(res.getStatusCode(), 404); - - json = new JsonPath(res.asString()); - Assert.assertEquals(json.getString("code"), "not_found"); + Assert.assertEquals(res.getStatusCode(), 200); } /** - * See {@link python code}. + * See {@link python + * code}. */ @Test(groups = "EnkelvoudigInformatieObjectVersionHistory") public void test_eio_detail_retrieves_latest_version() { EIOService eioService = new EIOService(); - JsonPath json = new JsonPath(eioService.testCreate(informatieobjecttypeUrl, "beschrijving1", "some content").asString()); + JsonPath json = new JsonPath( + eioService.testCreate(informatieobjecttypeUrl, "beschrijving1", "some content").asString()); String eioUrl = json.getString("url"); @@ -155,7 +169,8 @@ public void test_eio_detail_retrieves_latest_version() { JSONObject body = new JSONObject(); body.put("beschrijving", "beschrijving2"); - body.put("inhoud", Base64.getEncoder().encodeToString("some file content".getBytes())); + body.put("inhoud", Base64.getEncoder().encodeToString(SAMPLE_CONTENT.getBytes())); + body.put("bestandsomvang", SAMPLE_CONTENT.getBytes().length); body.put("lock", json.getString("lock")); Response res = eioService.partialUpdate(eioUrl, body); @@ -168,12 +183,15 @@ public void test_eio_detail_retrieves_latest_version() { } /** - * See {@link python code}. + * See {@link python + * code}. */ @Test(groups = "EnkelvoudigInformatieObjectVersionHistory") public void test_eio_list_shows_latest_versions() { EIOService eioService = new EIOService(); - JsonPath json = new JsonPath(eioService.testCreate(informatieobjecttypeUrl, "object1", "some content").asString()); + JsonPath json = new JsonPath( + eioService.testCreate(informatieobjecttypeUrl, "object1", "some content").asString()); String eioUrl = json.getString("url"); @@ -181,7 +199,8 @@ public void test_eio_list_shows_latest_versions() { JSONObject body = new JSONObject(); body.put("beschrijving", "object1 versie2"); - body.put("inhoud", Base64.getEncoder().encodeToString("some file content".getBytes())); + body.put("inhoud", Base64.getEncoder().encodeToString(SAMPLE_CONTENT.getBytes())); + body.put("bestandsomvang", SAMPLE_CONTENT.getBytes().length); body.put("lock", json.getString("lock")); Response res1 = eioService.partialUpdate(eioUrl, body); @@ -195,7 +214,8 @@ public void test_eio_list_shows_latest_versions() { body = new JSONObject(); body.put("beschrijving", "object2 versie2"); - body.put("inhoud", Base64.getEncoder().encodeToString("some file content".getBytes())); + body.put("inhoud", Base64.getEncoder().encodeToString(SAMPLE_CONTENT.getBytes())); + body.put("bestandsomvang", SAMPLE_CONTENT.getBytes().length); body.put("lock", json.getString("lock")); Response res2 = eioService.partialUpdate(eioUrl, body); @@ -209,12 +229,15 @@ public void test_eio_list_shows_latest_versions() { } /** - * See {@link python code}. + * See {@link python + * code}. */ @Test(groups = "EnkelvoudigInformatieObjectVersionHistory") public void test_eio_detail_filter_by_version() { EIOService eioService = new EIOService(); - JsonPath json = new JsonPath(eioService.testCreate(informatieobjecttypeUrl, "beschrijving1", "some content").asString()); + JsonPath json = new JsonPath( + eioService.testCreate(informatieobjecttypeUrl, "beschrijving1", "some content").asString()); String eioUrl = json.getString("url"); @@ -222,7 +245,8 @@ public void test_eio_detail_filter_by_version() { JSONObject body = new JSONObject(); body.put("beschrijving", "beschrijving2"); - body.put("inhoud", Base64.getEncoder().encodeToString("some file content".getBytes())); + body.put("inhoud", Base64.getEncoder().encodeToString(SAMPLE_CONTENT.getBytes())); + body.put("bestandsomvang", SAMPLE_CONTENT.getBytes().length); body.put("lock", json.getString("lock")); eioService.partialUpdate(eioUrl, body); @@ -236,12 +260,15 @@ public void test_eio_detail_filter_by_version() { } /** - * See {@link python code}. + * See {@link python + * code}. */ @Test(groups = "EnkelvoudigInformatieObjectVersionHistory") public void test_eio_detail_filter_by_wrong_version_gives_404() { EIOService eioService = new EIOService(); - JsonPath json = new JsonPath(eioService.testCreate(informatieobjecttypeUrl, "beschrijving1", "some content").asString()); + JsonPath json = new JsonPath( + eioService.testCreate(informatieobjecttypeUrl, "beschrijving1", "some content").asString()); String eioUrl = json.getString("url"); @@ -249,7 +276,8 @@ public void test_eio_detail_filter_by_wrong_version_gives_404() { JSONObject body = new JSONObject(); body.put("beschrijving", "beschrijving2"); - body.put("inhoud", Base64.getEncoder().encodeToString("some file content".getBytes())); + body.put("inhoud", Base64.getEncoder().encodeToString(SAMPLE_CONTENT.getBytes())); + body.put("bestandsomvang", SAMPLE_CONTENT.getBytes().length); body.put("lock", json.getString("lock")); eioService.partialUpdate(eioUrl, body); @@ -264,7 +292,8 @@ public void test_eio_detail_filter_by_wrong_version_gives_404() { public void test_eio_detail_filter_by_registratie_op() { EIOService eioService = new EIOService(); - JsonPath json = new JsonPath(eioService.testCreate(informatieobjecttypeUrl, "beschrijving1", "some content").asString()); + JsonPath json = new JsonPath( + eioService.testCreate(informatieobjecttypeUrl, "beschrijving1", "some content").asString()); wait(2000); @@ -276,7 +305,8 @@ public void test_eio_detail_filter_by_registratie_op() { JSONObject body = new JSONObject(); body.put("beschrijving", "beschrijving2"); - body.put("inhoud", Base64.getEncoder().encodeToString("some file content".getBytes())); + body.put("inhoud", Base64.getEncoder().encodeToString(SAMPLE_CONTENT.getBytes())); + body.put("bestandsomvang", SAMPLE_CONTENT.getBytes().length); body.put("lock", json.getString("lock")); eioService.partialUpdate(eioUrl, body); @@ -291,7 +321,9 @@ public void test_eio_detail_filter_by_registratie_op() { } /** - * See {@link python code}. + * See {@link python + * code}. */ @Test(groups = "EnkelvoudigInformatieObjectVersionHistory") public void test_eio_detail_filter_by_wrong_registratie_op_gives_404() { @@ -306,12 +338,15 @@ public void test_eio_detail_filter_by_wrong_registratie_op_gives_404() { } /** - * See {@link python code}. + * See {@link python + * code}. */ @Test(groups = "EnkelvoudigInformatieObjectVersionHistory") public void test_eio_download_content_filter_by_version() { EIOService eioService = new EIOService(); - JsonPath json = new JsonPath(eioService.testCreate(informatieobjecttypeUrl, "beschrijving1", "inhoud1").asString()); + JsonPath json = new JsonPath( + eioService.testCreate(informatieobjecttypeUrl, "beschrijving1", "inhoud1").asString()); String eioUrl = json.getString("url"); @@ -320,6 +355,7 @@ public void test_eio_download_content_filter_by_version() { JSONObject body = new JSONObject(); body.put("beschrijving", "beschrijving2"); body.put("inhoud", Base64.getEncoder().encodeToString("inhoud2".getBytes())); + body.put("bestandsomvang", "inhoud2".getBytes().length); body.put("lock", json.getString("lock")); eioService.partialUpdate(eioUrl, body); @@ -331,12 +367,15 @@ public void test_eio_download_content_filter_by_version() { } /** - * See {@link python code}. + * See {@link python + * code}. */ @Test(groups = "EnkelvoudigInformatieObjectVersionHistory") public void test_eio_download_content_filter_by_registratie() { EIOService eioService = new EIOService(); - JsonPath json = new JsonPath(eioService.testCreate(informatieobjecttypeUrl, "beschrijving1", "inhoud1").asString()); + JsonPath json = new JsonPath( + eioService.testCreate(informatieobjecttypeUrl, "beschrijving1", "inhoud1").asString()); wait(2000); @@ -349,6 +388,7 @@ public void test_eio_download_content_filter_by_registratie() { JSONObject body = new JSONObject(); body.put("beschrijving", "beschrijving2"); body.put("inhoud", Base64.getEncoder().encodeToString("inhoud2".getBytes())); + body.put("bestandsomvang", "inhoud2".getBytes().length); body.put("lock", json.getString("lock")); wait(2000); @@ -360,27 +400,28 @@ public void test_eio_download_content_filter_by_registratie() { String data = eioService.downloadAsString(json.getString("inhoud")); Assert.assertEquals(data, "inhoud1"); } - + @Test(groups = "EnkelvoudigInformatieObjectVersionHistory") public void test_eio_version_number_during_locked() { EIOService eioService = new EIOService(); - + JsonPath json = new JsonPath(eioService.testCreate(informatieobjecttypeUrl).asString()); Assert.assertEquals(json.getString("versie"), "1"); String eioUrl = json.getString("url"); // Version 2 - json = new JsonPath(eioService.lock(eioUrl).asString()); + json = new JsonPath(eioService.lock(eioUrl).asString()); eioService.unlock(eioUrl, json.getString("lock")); // Only lock - eioService.lock(eioUrl); + eioService.lock(eioUrl); Response res2 = eioService.getEIO(eioUrl, null, null); Assert.assertEquals(res2.getStatusCode(), 200); + // When locked version is already increased JsonPath json2 = new JsonPath(res2.asString()); - Assert.assertEquals(json2.getString("versie"), "2"); + Assert.assertEquals(json2.getString("versie"), "3"); } } \ No newline at end of file From e979b3f21d5370e7306625a14431ef11912a472a Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Tue, 21 Mar 2023 19:54:41 +0100 Subject: [PATCH 09/33] =?UTF-8?q?=F0=9F=9A=A7=20fixed=20bestandsomvang?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../custom/CustomVersionHistoryTest.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/test/java/nl/contezza/drc/tests/custom/CustomVersionHistoryTest.java b/src/test/java/nl/contezza/drc/tests/custom/CustomVersionHistoryTest.java index 34820b9..563f1d0 100644 --- a/src/test/java/nl/contezza/drc/tests/custom/CustomVersionHistoryTest.java +++ b/src/test/java/nl/contezza/drc/tests/custom/CustomVersionHistoryTest.java @@ -19,7 +19,7 @@ * Some custom unit tests which are not mapped to any python scripts. */ -//@Log4j2 +// @Log4j2 public class CustomVersionHistoryTest extends RestTest { /** @@ -36,7 +36,8 @@ public void init() { json = new JsonPath(ztcService.createInformatieObjectType(catalogusUrl).asString()); informatieobjecttypeUrl = json.getString("url").replace(ZTC_BASE_URI, ZTC_DOCKER_URI); - Response res = ztcService.publishInformatieObjectType(informatieobjecttypeUrl.substring(informatieobjecttypeUrl.lastIndexOf('/') + 1).trim()); + Response res = ztcService.publishInformatieObjectType( + informatieobjecttypeUrl.substring(informatieobjecttypeUrl.lastIndexOf('/') + 1).trim()); Assert.assertEquals(res.getStatusCode(), 200); } @@ -45,7 +46,8 @@ public void test_registratie_op_filter() { EIOService eioService = new EIOService(); // Create EIO - JsonPath json = new JsonPath(eioService.testCreate(informatieobjecttypeUrl, "beschrijving0", "some content0", new Date()).asString()); + JsonPath json = new JsonPath(eioService + .testCreate(informatieobjecttypeUrl, "beschrijving0", "some content0", new Date()).asString()); String eioUrl = json.getString("url"); // Update 1 @@ -78,7 +80,8 @@ public void test_versie_filter() { EIOService eioService = new EIOService(); // Create EIO - JsonPath json = new JsonPath(eioService.testCreate(informatieobjecttypeUrl, "beschrijving0", "some content0", new Date()).asString()); // v1 + JsonPath json = new JsonPath(eioService + .testCreate(informatieobjecttypeUrl, "beschrijving0", "some content0", new Date()).asString()); // v1 String eioUrl = json.getString("url"); createVersion(eioUrl, "beschrijving1", "some content1"); // v2 @@ -96,18 +99,19 @@ public void test_versie_filter() { Assert.assertEquals(json.getString("beschrijving"), "beschrijving1"); Assert.assertEquals(json.getInt("versie"), 2); } - + @Test(groups = "CustomVersionHistory") public void test_update_bestandsnaam() { EIOService eioService = new EIOService(); // Create EIO - JsonPath json = new JsonPath(eioService.testCreate(informatieobjecttypeUrl, "beschrijving1", "some content").asString()); + JsonPath json = new JsonPath( + eioService.testCreate(informatieobjecttypeUrl, "beschrijving1", "some content").asString()); String eioUrl = json.getString("url"); // Lock EIO String lock = new JsonPath(eioService.lock(eioUrl).asString()).getString("lock"); - + // Validate original name json = new JsonPath(eioService.getEIO(eioUrl, null, null).asString()); Assert.assertEquals(json.getString("bestandsnaam"), "dummy.txt"); @@ -146,6 +150,7 @@ private Response createVersion(String eioUrl, String beschrijving, String inhoud JSONObject body = new JSONObject(); body.put("beschrijving", beschrijving); body.put("inhoud", Base64.getEncoder().encodeToString(inhoud.getBytes())); + body.put("bestandsomvang", inhoud.getBytes().length); body.put("lock", lock); Response res = eioService.partialUpdate(eioUrl, body); From 0428a55cb4afd0b0dd743848ab6d8e8995737df5 Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Wed, 22 Mar 2023 07:49:44 +0100 Subject: [PATCH 10/33] =?UTF-8?q?=E2=86=A9=EF=B8=8F=20reverse=20back=20to?= =?UTF-8?q?=20open=20zaak=201.7.4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/docker-compose.yml | 54 +++++++++++++-------------- docker/fixtures/open-zaak/config.json | 5 --- 2 files changed, 27 insertions(+), 32 deletions(-) diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index ab5729a..f496205 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -36,7 +36,7 @@ services: - rabbitmq open-zaak.local: - image: docker.io/openzaak/open-zaak:1.8.2 + image: docker.io/openzaak/open-zaak:1.7.4 environment: - TZ=Europe/Amsterdam - DJANGO_SETTINGS_MODULE=openzaak.conf.docker @@ -65,32 +65,32 @@ services: aliases: - open-zaak.local - open-zaak-celery: - image: docker.io/openzaak/open-zaak:1.8.2 - environment: - - TZ=Europe/Amsterdam - - DJANGO_SETTINGS_MODULE=openzaak.conf.docker - - SECRET_KEY=somesecretkey - - DB_HOST=db - - DB_NAME=openzaak - - DB_USER=openzaak - - IS_HTTPS=no - - ALLOWED_HOSTS=open-zaak.local,open-zaak.local:8000,localhost,localhost:8000 - - CACHE_DEFAULT=redis:6379/0 - - CACHE_AXES=redis:6379/0 - - CELERY_BROKER_URL=redis://redis:6379/1 - - CELERY_RESULT_BACKEND=redis://redis:6379/1 - - CELERY_LOGLEVEL=DEBUG - - CELERY_WORKER_CONCURRENCY=${CELERY_WORKER_CONCURRENCY:-4} - - SENDFILE_BACKEND=django_sendfile.backends.simple - command: /celery_worker.sh - depends_on: - - db - - redis - networks: - dev_network: - aliases: - - open-zaak-celery + # open-zaak-celery: + # image: docker.io/openzaak/open-zaak:1.8.2 + # environment: + # - TZ=Europe/Amsterdam + # - DJANGO_SETTINGS_MODULE=openzaak.conf.docker + # - SECRET_KEY=somesecretkey + # - DB_HOST=db + # - DB_NAME=openzaak + # - DB_USER=openzaak + # - IS_HTTPS=no + # - ALLOWED_HOSTS=open-zaak.local,open-zaak.local:8000,localhost,localhost:8000 + # - CACHE_DEFAULT=redis:6379/0 + # - CACHE_AXES=redis:6379/0 + # - CELERY_BROKER_URL=redis://redis:6379/1 + # - CELERY_RESULT_BACKEND=redis://redis:6379/1 + # - CELERY_LOGLEVEL=DEBUG + # - CELERY_WORKER_CONCURRENCY=${CELERY_WORKER_CONCURRENCY:-4} + # - SENDFILE_BACKEND=django_sendfile.backends.simple + # command: /celery_worker.sh + # depends_on: + # - db + # - redis + # networks: + # dev_network: + # aliases: + # - open-zaak-celery open-notificaties-worker: image: openzaak/open-notificaties:1.4.3 diff --git a/docker/fixtures/open-zaak/config.json b/docker/fixtures/open-zaak/config.json index 4c62151..fa7762d 100644 --- a/docker/fixtures/open-zaak/config.json +++ b/docker/fixtures/open-zaak/config.json @@ -6,11 +6,6 @@ "api_root": "http://open-notificaties.local:8000/api/v1/" } }, - { - "model": "notifications_api_common.notificationsconfig", - "pk": 1, - "fields": { "notifications_api_service": 2, "notification_delivery_max_retries": 5, "notification_delivery_retry_backoff": 3, "notification_delivery_retry_backoff_max": 48 } - }, { "model": "sites.site", "pk": 1, From 84c88dc0550dff22d95628ba76cb483e5f86e3c9 Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Wed, 22 Mar 2023 07:50:21 +0100 Subject: [PATCH 11/33] =?UTF-8?q?=F0=9F=90=9E=20still=2010/48=20to=20go.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../custom/CustomInputValidationTest.java | 45 +++++++++++-------- 1 file changed, 26 insertions(+), 19 deletions(-) diff --git a/src/test/java/nl/contezza/drc/tests/custom/CustomInputValidationTest.java b/src/test/java/nl/contezza/drc/tests/custom/CustomInputValidationTest.java index 6bef197..c935c44 100644 --- a/src/test/java/nl/contezza/drc/tests/custom/CustomInputValidationTest.java +++ b/src/test/java/nl/contezza/drc/tests/custom/CustomInputValidationTest.java @@ -1,7 +1,5 @@ package nl.contezza.drc.tests.custom; -import static io.restassured.RestAssured.given; - import java.util.Base64; import java.util.Date; import java.util.UUID; @@ -25,7 +23,7 @@ * Some custom unit tests which are not mapped to any python scripts. */ -//@Log4j2 +// @Log4j2 public class CustomInputValidationTest extends RestTest { /** @@ -42,29 +40,37 @@ public void init() { json = new JsonPath(ztcService.createInformatieObjectType(catalogusUrl).asString()); informatieobjecttypeUrl = json.getString("url").replace(ZTC_BASE_URI, ZTC_DOCKER_URI); - Response res = ztcService.publishInformatieObjectType(informatieobjecttypeUrl.substring(informatieobjecttypeUrl.lastIndexOf('/') + 1).trim()); + Response res = ztcService.publishInformatieObjectType( + informatieobjecttypeUrl.substring(informatieobjecttypeUrl.lastIndexOf('/') + 1).trim()); Assert.assertEquals(res.getStatusCode(), 200); } - @Test(groups = "CustomInputValidation") - public void empty_body_patch() { + // FIXME: patch not supported anymore - EIOService eioService = new EIOService(); - // Create EIO - JsonPath json = new JsonPath(eioService.testCreate(informatieobjecttypeUrl, "beschrijving0", "some content0", new Date()).asString()); - String eioUrl = json.getString("url"); + // @Test(groups = "CustomInputValidation") + // public void empty_body_patch() { - String id = eioUrl.substring(eioUrl.lastIndexOf('/') + 1).trim(); - Response res = given().spec(DRCRequestSpecification.getDefault()).when().patch("/enkelvoudiginformatieobjecten/" + id + "/unlock").then().extract().response(); + // EIOService eioService = new EIOService(); + // // Create EIO + // JsonPath json = new JsonPath(eioService + // .testCreate(informatieobjecttypeUrl, "beschrijving0", "some content0", new + // Date()).asString()); + // String eioUrl = json.getString("url"); - Assert.assertEquals(res.getStatusCode(), 405); - } + // String id = eioUrl.substring(eioUrl.lastIndexOf('/') + 1).trim(); + // Response res = given().spec(DRCRequestSpecification.getDefault()).when() + // .patch("/enkelvoudiginformatieobjecten/" + id + + // "/unlock").then().extract().response(); + + // Assert.assertEquals(res.getStatusCode(), 405); + // } @Test(groups = "CustomInputValidation") public void create_eio_with_only_required_items() { AuthService authService = new AuthService(); - authService.updateReadOnlyClientScope(new JSONArray().put("documenten.aanmaken"), "zeer_geheim", informatieobjecttypeUrl); + authService.updateReadOnlyClientScope(new JSONArray().put("documenten.aanmaken"), "zeer_geheim", + informatieobjecttypeUrl); wait(2000); EIOService eioService = new EIOService(); @@ -82,21 +88,22 @@ public void create_eio_with_empty_strings() { json.put("identificatie", UUID.randomUUID().toString()); json.put("bronorganisatie", "159351741"); json.put("creatiedatum", StringDate.formatDate(new Date())); - json.put("ontvangstdatum", ""); - json.put("verzenddatum", ""); + // json.put("ontvangstdatum", ""); + // json.put("verzenddatum", ""); json.put("titel", "detailed summary"); json.put("auteur", "test_auteur"); json.put("formaat", ""); json.put("taal", "eng"); json.put("bestandsnaam", ""); json.put("inhoud", Base64.getEncoder().encodeToString("some file content".getBytes())); + json.put("bestandsomvang", "some file content".getBytes().length); json.put("link", ""); json.put("beschrijving", ""); json.put("informatieobjecttype", informatieobjecttypeUrl); json.put("vertrouwelijkheidaanduiding", ""); json.put("indicatieGebruiksrecht", ""); - json.put("ondertekening", ""); - json.put("integriteit", ""); + // json.put("ondertekening", ""); + // json.put("integriteit", ""); json.put("status", ""); Response res = eioService.testCreate(json); From 966b0d76b137cd36049a1eb8c3c983c13b5f6c10 Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Mon, 3 Apr 2023 08:12:46 +0200 Subject: [PATCH 12/33] =?UTF-8?q?=F0=9F=9A=A7=20current=20tests=20are=20fi?= =?UTF-8?q?xed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 3 +- .../custom/CustomInputValidationTest.java | 36 +++++++++---------- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 4229ba0..e31dddf 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -79,6 +79,7 @@ "cSpell.words": [ "bestandsomvang", "contezza", - "informatieobjecttype" + "informatieobjecttype", + "restassured" ] } \ No newline at end of file diff --git a/src/test/java/nl/contezza/drc/tests/custom/CustomInputValidationTest.java b/src/test/java/nl/contezza/drc/tests/custom/CustomInputValidationTest.java index c935c44..a60a3f0 100644 --- a/src/test/java/nl/contezza/drc/tests/custom/CustomInputValidationTest.java +++ b/src/test/java/nl/contezza/drc/tests/custom/CustomInputValidationTest.java @@ -1,5 +1,7 @@ package nl.contezza.drc.tests.custom; +import static io.restassured.RestAssured.given; + import java.util.Base64; import java.util.Date; import java.util.UUID; @@ -45,25 +47,23 @@ public void init() { Assert.assertEquals(res.getStatusCode(), 200); } - // FIXME: patch not supported anymore - - // @Test(groups = "CustomInputValidation") - // public void empty_body_patch() { - - // EIOService eioService = new EIOService(); - // // Create EIO - // JsonPath json = new JsonPath(eioService - // .testCreate(informatieobjecttypeUrl, "beschrijving0", "some content0", new - // Date()).asString()); - // String eioUrl = json.getString("url"); - - // String id = eioUrl.substring(eioUrl.lastIndexOf('/') + 1).trim(); - // Response res = given().spec(DRCRequestSpecification.getDefault()).when() - // .patch("/enkelvoudiginformatieobjecten/" + id + - // "/unlock").then().extract().response(); + @Test(groups = "CustomInputValidation") + public void empty_body_patch() { - // Assert.assertEquals(res.getStatusCode(), 405); - // } + EIOService eioService = new EIOService(); + // Create EIO + JsonPath json = new JsonPath(eioService + .testCreate(informatieobjecttypeUrl, "beschrijving0", "some content0", new Date()).asString()); + String eioUrl = json.getString("url"); + + String id = eioUrl.substring(eioUrl.lastIndexOf('/') + 1).trim(); + Response res = given().spec(DRCRequestSpecification.getDefault()).when() + .patch("/enkelvoudiginformatieobjecten/" + id + + "/unlock") + .then().extract().response(); + + Assert.assertEquals(res.getStatusCode(), 405); + } @Test(groups = "CustomInputValidation") public void create_eio_with_only_required_items() { From 57b1b724ba246a9541de55bdfd48aa120c34bba5 Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Mon, 3 Apr 2023 08:59:38 +0200 Subject: [PATCH 13/33] =?UTF-8?q?=F0=9F=9A=A7=20created=20tests=20todo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...nkelvoudigInformatieObjectCachingTest.java | 55 +++++++++++++++++++ ...digInformatieObjectVersionHistoryTest.java | 6 ++ .../EnkelvoudigInformatieObjectZoekTest.java | 46 ++++++++++++++++ .../drc/tests/GebruiksrechtenCachingTest.java | 49 +++++++++++++++++ .../nl/contezza/drc/tests/OioCachingTest.java | 50 +++++++++++++++++ .../nl/contezza/drc/tests/VerzendingTest.java | 50 +++++++++++++++++ 6 files changed, 256 insertions(+) create mode 100644 src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectCachingTest.java create mode 100644 src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectZoekTest.java create mode 100644 src/test/java/nl/contezza/drc/tests/GebruiksrechtenCachingTest.java create mode 100644 src/test/java/nl/contezza/drc/tests/OioCachingTest.java create mode 100644 src/test/java/nl/contezza/drc/tests/VerzendingTest.java diff --git a/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectCachingTest.java b/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectCachingTest.java new file mode 100644 index 0000000..287e07f --- /dev/null +++ b/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectCachingTest.java @@ -0,0 +1,55 @@ +package nl.contezza.drc.tests; + +import org.testng.annotations.BeforeTest; +import org.testng.annotations.Test; + +import nl.contezza.drc.rest.RestTest; + +//@Log4j2 +public class EnkelvoudigInformatieObjectCachingTest extends RestTest { + + /** + * Create necessary dependencies. + */ + @BeforeTest(groups = "EnkelvoudigInformatieObjectCaching") + public void init() { + + } + + // TODO: create test + @Test(groups = "EnkelvoudigInformatieObjectCaching") + public void test_eio_get_cache_header() { + + } + + // TODO: create test + @Test(groups = "EnkelvoudigInformatieObjectCaching") + public void test_eio_head_cache_header() { + + } + + // TODO: create test + @Test(groups = "EnkelvoudigInformatieObjectCaching") + public void test_head_in_apischema() { + + } + + // TODO: create test + @Test(groups = "EnkelvoudigInformatieObjectCaching") + public void test_conditional_get_304() { + + } + + // TODO: create test + @Test(groups = "EnkelvoudigInformatieObjectCaching") + public void test_conditional_get_stale() { + + } + + // TODO: create test + @Test(groups = "EnkelvoudigInformatieObjectCaching") + public void test_invalidate_etag_after_change() { + + } + +} \ No newline at end of file diff --git a/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectVersionHistoryTest.java b/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectVersionHistoryTest.java index 50ccea1..a7446e0 100644 --- a/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectVersionHistoryTest.java +++ b/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectVersionHistoryTest.java @@ -152,6 +152,12 @@ public void test_eio_delete() { Assert.assertEquals(res.getStatusCode(), 200); } + // TODO: create test + @Test(groups = "EnkelvoudigInformatieObjectVersionHistory") + public void test_eio_delete_fails_on_locked() { + + } + /** * See {@link python diff --git a/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectZoekTest.java b/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectZoekTest.java new file mode 100644 index 0000000..01e1343 --- /dev/null +++ b/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectZoekTest.java @@ -0,0 +1,46 @@ +package nl.contezza.drc.tests; + +import org.testng.Assert; +import org.testng.annotations.BeforeTest; +import org.testng.annotations.Test; + +import io.restassured.path.json.JsonPath; +import io.restassured.response.Response; +import nl.contezza.drc.rest.RestTest; +import nl.contezza.drc.service.ZTCService; + +//@Log4j2 +public class EnkelvoudigInformatieObjectZoekTest extends RestTest { + + /** + * Create necessary dependencies. + */ + @BeforeTest(groups = "EnkelvoudigInformatieObjectZoek") + public void init() { + // Create random catalogi + ZTCService ztcService = new ZTCService(); + JsonPath json = new JsonPath(ztcService.createCatalogus().asString()); + + // Create informatieobjecttype + String catalogusUrl = json.getString("url").replace(ZTC_BASE_URI, ZTC_DOCKER_URI); + json = new JsonPath(ztcService.createInformatieObjectType(catalogusUrl).asString()); + informatieobjecttypeUrl = json.getString("url").replace(ZTC_BASE_URI, ZTC_DOCKER_URI); + + Response res = ztcService.publishInformatieObjectType( + informatieobjecttypeUrl.substring(informatieobjecttypeUrl.lastIndexOf('/') + 1).trim()); + Assert.assertEquals(res.getStatusCode(), 200); + } + + // TODO: create test + @Test(groups = "EnkelvoudigInformatieObjectZoek") + public void test_zoek_uuid_in() { + + } + + // TODO: create test + @Test(groups = "EnkelvoudigInformatieObjectZoek") + public void test_zoek_without_params() { + + } + +} \ No newline at end of file diff --git a/src/test/java/nl/contezza/drc/tests/GebruiksrechtenCachingTest.java b/src/test/java/nl/contezza/drc/tests/GebruiksrechtenCachingTest.java new file mode 100644 index 0000000..1f8a415 --- /dev/null +++ b/src/test/java/nl/contezza/drc/tests/GebruiksrechtenCachingTest.java @@ -0,0 +1,49 @@ +package nl.contezza.drc.tests; + +import org.testng.annotations.BeforeTest; +import org.testng.annotations.Test; + +import nl.contezza.drc.rest.RestTest; + +//@Log4j2 +public class GebruiksrechtenCachingTest extends RestTest { + + /** + * Create necessary dependencies. + */ + @BeforeTest(groups = "GebruiksrechtenCaching") + public void init() { + + } + + // TODO: create test + @Test(groups = "GebruiksrechtenCaching") + public void test_gebruiksrecht_get_cache_header() { + + } + + // TODO: create test + @Test(groups = "GebruiksrechtenCaching") + public void test_gebruiksrechthead_cache_header() { + + } + + // TODO: create test + @Test(groups = "GebruiksrechtenCaching") + public void test_head_in_apischema() { + + } + + // TODO: create test + @Test(groups = "GebruiksrechtenCaching") + public void test_conditional_get_304() { + + } + + // TODO: create test + @Test(groups = "GebruiksrechtenCaching") + public void test_conditional_get_stale() { + + } + +} diff --git a/src/test/java/nl/contezza/drc/tests/OioCachingTest.java b/src/test/java/nl/contezza/drc/tests/OioCachingTest.java new file mode 100644 index 0000000..40d8203 --- /dev/null +++ b/src/test/java/nl/contezza/drc/tests/OioCachingTest.java @@ -0,0 +1,50 @@ +package nl.contezza.drc.tests; + +import org.testng.annotations.BeforeTest; +import org.testng.annotations.Test; + +import lombok.extern.log4j.Log4j2; +import nl.contezza.drc.rest.RestTest; + +@Log4j2 +public class OioCachingTest extends RestTest { + + /** + * Create necessary dependencies when creating enkelvoudiginformatieobject. + */ + @BeforeTest(groups = "OioCaching") + public void init() { + + } + + // TODO: create test + @Test(groups = "OioCaching") + public void test_oio_get_cache_header() { + + } + + // TODO: create test + @Test(groups = "OioCaching") + public void test_oio_head_cache_header() { + + } + + // TODO: create test + @Test(groups = "OioCaching") + public void test_head_in_apischema() { + + } + + // TODO: create test + @Test(groups = "OioCaching") + public void test_conditional_get_304() { + + } + + // TODO: create test + @Test(groups = "OioCaching") + public void test_conditional_get_stale() { + + } + +} diff --git a/src/test/java/nl/contezza/drc/tests/VerzendingTest.java b/src/test/java/nl/contezza/drc/tests/VerzendingTest.java new file mode 100644 index 0000000..aa9d000 --- /dev/null +++ b/src/test/java/nl/contezza/drc/tests/VerzendingTest.java @@ -0,0 +1,50 @@ +package nl.contezza.drc.tests; + +import org.testng.annotations.BeforeTest; +import org.testng.annotations.Test; + +import lombok.extern.log4j.Log4j2; +import nl.contezza.drc.rest.RestTest; + +@Log4j2 +public class VerzendingTest extends RestTest { + + /** + * Create necessary dependencies when creating enkelvoudiginformatieobject. + */ + @BeforeTest(groups = "Verzending") + public void init() { + + } + + // TODO: create test + @Test(groups = "Verzending") + public void test_detail() { + + } + + // TODO: create test + @Test(groups = "Verzending") + public void test_create() { + + } + + // TODO: create test + @Test(groups = "Verzending") + public void test_update() { + + } + + // TODO: create test + @Test(groups = "Verzending") + public void test_partial_update() { + + } + + // TODO: create test + @Test(groups = "Verzending") + public void test_delete() { + + } + +} From 02636f7949257d426fe78388e7ac70f6cfe836c2 Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Mon, 3 Apr 2023 09:08:21 +0200 Subject: [PATCH 14/33] =?UTF-8?q?=E2=9A=97=EF=B8=8F=20added=20test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...oudigInformatieObjectVersionHistoryTest.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectVersionHistoryTest.java b/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectVersionHistoryTest.java index a7446e0..f3e96f5 100644 --- a/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectVersionHistoryTest.java +++ b/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectVersionHistoryTest.java @@ -152,10 +152,25 @@ public void test_eio_delete() { Assert.assertEquals(res.getStatusCode(), 200); } - // TODO: create test + /** + * See {@link python + * code}. + */ + @Test(groups = "EnkelvoudigInformatieObjectVersionHistory") public void test_eio_delete_fails_on_locked() { + EIOService eioService = new EIOService(); + JsonPath json = new JsonPath( + eioService.testCreate(informatieobjecttypeUrl, "beschrijving1", "some content").asString()); + String eioUrl = json.getString("url"); + + eioService.lock(eioUrl); + + Response res = eioService.delete(eioUrl); + Assert.assertEquals(res.getStatusCode(), 400); } /** From d4648e830ba2e8550ab35344bf21a2a66e3b7cd4 Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Mon, 3 Apr 2023 10:29:14 +0200 Subject: [PATCH 15/33] =?UTF-8?q?=F0=9F=9A=A7=20added=20zoek=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 5 +- .../drc/dataprovider/DRCDataProvider.java | 9 ++++ .../nl/contezza/drc/service/EIOService.java | 12 +++++ .../EnkelvoudigInformatieObjectZoekTest.java | 47 +++++++++++++++++-- 4 files changed, 67 insertions(+), 6 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index e31dddf..5641e6a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -79,7 +79,10 @@ "cSpell.words": [ "bestandsomvang", "contezza", + "Enkelvoudig", + "Informatie", "informatieobjecttype", - "restassured" + "restassured", + "Zoek" ] } \ No newline at end of file diff --git a/src/main/java/nl/contezza/drc/dataprovider/DRCDataProvider.java b/src/main/java/nl/contezza/drc/dataprovider/DRCDataProvider.java index 79ad488..9405ba7 100644 --- a/src/main/java/nl/contezza/drc/dataprovider/DRCDataProvider.java +++ b/src/main/java/nl/contezza/drc/dataprovider/DRCDataProvider.java @@ -345,4 +345,13 @@ public static String unlock(String lockId) { json.put("lock", lockId); return json.toString(); } + + @DataProvider(name = "search") + public static String search(JSONArray uuids) { + JSONObject json = new JSONObject(); + if (uuids != null) { + json.put("uuid_In", uuids); + } + return json.toString(); + } } diff --git a/src/main/java/nl/contezza/drc/service/EIOService.java b/src/main/java/nl/contezza/drc/service/EIOService.java index 79e7e38..4d08bf1 100644 --- a/src/main/java/nl/contezza/drc/service/EIOService.java +++ b/src/main/java/nl/contezza/drc/service/EIOService.java @@ -434,4 +434,16 @@ public Response delete(String url) { // @formatter:on } + public Response search(JSONArray uuids) { + // @formatter:off + return given() + .spec(DRCRequestSpecification.getDefault()) + .body(DRCDataProvider.search(uuids)) + .when() + .post("/enkelvoudiginformatieobjecten/_zoek") + .then() + .extract() + .response(); + // @formatter:on + } } diff --git a/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectZoekTest.java b/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectZoekTest.java index 01e1343..41680da 100644 --- a/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectZoekTest.java +++ b/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectZoekTest.java @@ -1,5 +1,6 @@ package nl.contezza.drc.tests; +import org.json.JSONArray; import org.testng.Assert; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; @@ -7,6 +8,7 @@ import io.restassured.path.json.JsonPath; import io.restassured.response.Response; import nl.contezza.drc.rest.RestTest; +import nl.contezza.drc.service.EIOService; import nl.contezza.drc.service.ZTCService; //@Log4j2 @@ -26,21 +28,56 @@ public void init() { json = new JsonPath(ztcService.createInformatieObjectType(catalogusUrl).asString()); informatieobjecttypeUrl = json.getString("url").replace(ZTC_BASE_URI, ZTC_DOCKER_URI); - Response res = ztcService.publishInformatieObjectType( - informatieobjecttypeUrl.substring(informatieobjecttypeUrl.lastIndexOf('/') + 1).trim()); + // @formatter:off + Response res = ztcService.publishInformatieObjectType(informatieobjecttypeUrl.substring(informatieobjecttypeUrl.lastIndexOf('/') + 1).trim()); Assert.assertEquals(res.getStatusCode(), 200); + // @formatter:on } - // TODO: create test + /** + * See {@link python + * code}. + */ @Test(groups = "EnkelvoudigInformatieObjectZoek") public void test_zoek_uuid_in() { + EIOService eioService = new EIOService(); + + // @formatter:off + String url1 = new JsonPath(eioService.testCreate(informatieobjecttypeUrl).asString()).getString("url"); + String url2 = new JsonPath(eioService.testCreate(informatieobjecttypeUrl).asString()).getString("url"); + String url3 = new JsonPath(eioService.testCreate(informatieobjecttypeUrl).asString()).getString("url"); + // @formatter:on + + String uuid1 = url1.substring(url1.lastIndexOf('/') + 1).trim(); + String uuid2 = url2.substring(url2.lastIndexOf('/') + 1).trim(); + String uuid3 = url3.substring(url3.lastIndexOf('/') + 1).trim(); + + Response res = eioService.search(new JSONArray().put(uuid1).put(uuid2)); + + Assert.assertEquals(res.getStatusCode(), 200); + Assert.assertEquals((int) res.body().path("results.size()"), 2); + + res = eioService.search(new JSONArray().put(uuid3)); + + Assert.assertEquals(res.getStatusCode(), 200); + Assert.assertEquals((int) res.body().path("results.size()"), 1); } - // TODO: create test + /** + * See {@link python + * code}. + */ @Test(groups = "EnkelvoudigInformatieObjectZoek") public void test_zoek_without_params() { - } + EIOService eioService = new EIOService(); + + Response res = eioService.search(null); + Assert.assertEquals(res.getStatusCode(), 400); + Assert.assertEquals(res.body().path("invalidParams[0].code"), "required"); + } } \ No newline at end of file From d4f32dec073cd5e78534ced8c7b577b85e413dc6 Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Mon, 3 Apr 2023 13:08:44 +0200 Subject: [PATCH 16/33] =?UTF-8?q?=F0=9F=9A=A7=20added=20EIO=20caching=20(E?= =?UTF-8?q?Tag)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/nl/contezza/drc/rest/RestTest.java | 28 ++++- .../nl/contezza/drc/service/EIOService.java | 25 ++++ ...nkelvoudigInformatieObjectCachingTest.java | 109 ++++++++++++++++-- 3 files changed, 150 insertions(+), 12 deletions(-) diff --git a/src/main/java/nl/contezza/drc/rest/RestTest.java b/src/main/java/nl/contezza/drc/rest/RestTest.java index dc49427..f18c151 100644 --- a/src/main/java/nl/contezza/drc/rest/RestTest.java +++ b/src/main/java/nl/contezza/drc/rest/RestTest.java @@ -1,5 +1,7 @@ package nl.contezza.drc.rest; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.util.concurrent.ThreadLocalRandom; @@ -79,13 +81,37 @@ protected String randomRsin() { } while (rest > 9); return rsin + rest; } - + protected void wait(int mill) { try { Thread.sleep(mill); } catch (InterruptedException e) { log.error(e); } + } + /** + * Generate MD5 from provided string. + * + * @param name String the string to be hashed + * @return String hash + */ + public String md5FromString(String str) { + try { + MessageDigest md = MessageDigest.getInstance("MD5"); + md.update(str.getBytes()); + byte byteData[] = md.digest(); + StringBuffer hexString = new StringBuffer(); + for (int i = 0; i < byteData.length; i++) { + String hex = Integer.toHexString(0xff & byteData[i]); + if (hex.length() == 1) { + hexString.append('0'); + } + hexString.append(hex); + } + return hexString.toString(); + } catch (NoSuchAlgorithmException e) { + throw new RuntimeException("An error occurred", e); + } } } \ No newline at end of file diff --git a/src/main/java/nl/contezza/drc/service/EIOService.java b/src/main/java/nl/contezza/drc/service/EIOService.java index 4d08bf1..46334cc 100644 --- a/src/main/java/nl/contezza/drc/service/EIOService.java +++ b/src/main/java/nl/contezza/drc/service/EIOService.java @@ -324,6 +324,31 @@ public Response getEIO(String eioUrl, Integer version, String registratieOp) { // @formatter:on } + public Response getHeadEIO(String url) { + // @formatter:off + return given() + .spec(DRCRequestSpecification.getDefault()) + .when() + .head(url.split("/v1")[1]) + .then() + .extract() + .response(); + // @formatter:on + } + + public Response getEioIfNonMatch(String url, String eTag) { + // @formatter:off + return given() + .spec(DRCRequestSpecification.getDefault()) + .header("If-None-Match", eTag) + .when() + .get(url.split("/v1")[1]) + .then() + .extract() + .response(); + // @formatter:on + } + public Response listEIO(String identificatie, String bronorganisatie, Integer page) { Map params = new HashMap(); if (identificatie != null) { diff --git a/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectCachingTest.java b/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectCachingTest.java index 287e07f..2a1eaa2 100644 --- a/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectCachingTest.java +++ b/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectCachingTest.java @@ -1,9 +1,15 @@ package nl.contezza.drc.tests; +import org.json.JSONObject; +import org.testng.Assert; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; +import io.restassured.path.json.JsonPath; +import io.restassured.response.Response; import nl.contezza.drc.rest.RestTest; +import nl.contezza.drc.service.EIOService; +import nl.contezza.drc.service.ZTCService; //@Log4j2 public class EnkelvoudigInformatieObjectCachingTest extends RestTest { @@ -13,43 +19,124 @@ public class EnkelvoudigInformatieObjectCachingTest extends RestTest { */ @BeforeTest(groups = "EnkelvoudigInformatieObjectCaching") public void init() { - + // Create random catalogi + ZTCService ztcService = new ZTCService(); + JsonPath json = new JsonPath(ztcService.createCatalogus().asString()); + + // Create informatieobjecttype + String catalogusUrl = json.getString("url").replace(ZTC_BASE_URI, ZTC_DOCKER_URI); + json = new JsonPath(ztcService.createInformatieObjectType(catalogusUrl).asString()); + informatieobjecttypeUrl = json.getString("url").replace(ZTC_BASE_URI, ZTC_DOCKER_URI); + + // @formatter:off + Response res = ztcService.publishInformatieObjectType(informatieobjecttypeUrl.substring(informatieobjecttypeUrl.lastIndexOf('/') + 1).trim()); + Assert.assertEquals(res.getStatusCode(), 200); + // @formatter:on } - // TODO: create test + /** + * See {@link python + * code}. + */ @Test(groups = "EnkelvoudigInformatieObjectCaching") public void test_eio_get_cache_header() { + EIOService eioService = new EIOService(); + String eioUrl = new JsonPath(eioService.testCreate(informatieobjecttypeUrl).asString()).getString("url"); + + Response res = eioService.getEIO(eioUrl, null); + Assert.assertNotNull(res.getHeader("ETag")); } - // TODO: create test + /** + * See {@link python + * code}. + */ @Test(groups = "EnkelvoudigInformatieObjectCaching") public void test_eio_head_cache_header() { + EIOService eioService = new EIOService(); + String eioUrl = new JsonPath(eioService.testCreate(informatieobjecttypeUrl).asString()).getString("url"); + Response res = eioService.getHeadEIO(eioUrl); + Assert.assertNotNull(res.getHeader("ETag")); } - // TODO: create test + /** + * See {@link python + * code}. + */ @Test(groups = "EnkelvoudigInformatieObjectCaching") - public void test_head_in_apischema() { + public void test_conditional_get_304() { - } + EIOService eioService = new EIOService(); + String eioUrl = new JsonPath(eioService.testCreate(informatieobjecttypeUrl).asString()).getString("url"); - // TODO: create test - @Test(groups = "EnkelvoudigInformatieObjectCaching") - public void test_conditional_get_304() { + // get ETag + Response res = eioService.getEIO(eioUrl, null); + String eTag = "" + res.getHeader("ETag") + ""; + // Not modified + res = eioService.getEioIfNonMatch(eioUrl, eTag); + Assert.assertEquals(res.getStatusCode(), 304); } - // TODO: create test + /** + * See {@link python + * code}. + */ @Test(groups = "EnkelvoudigInformatieObjectCaching") public void test_conditional_get_stale() { + EIOService eioService = new EIOService(); + String eioUrl = new JsonPath(eioService.testCreate(informatieobjecttypeUrl).asString()).getString("url"); + Response res = eioService.getEioIfNonMatch(eioUrl, "" + "not-an-md5" + ""); + Assert.assertEquals(res.getStatusCode(), 200); } - // TODO: create test + /** + * See {@link python + * code}. + */ @Test(groups = "EnkelvoudigInformatieObjectCaching") public void test_invalidate_etag_after_change() { + EIOService eioService = new EIOService(); + String eioUrl = new JsonPath(eioService.testCreate(informatieobjecttypeUrl).asString()).getString("url"); + + // get ETag + Response res = eioService.getEIO(eioUrl, null); + String eTag = "" + res.getHeader("ETag") + ""; + + updateEIO(eioUrl, "aangepast"); + + res = eioService.getEioIfNonMatch(eioUrl, eTag); + Assert.assertEquals(res.getStatusCode(), 200); } + /** + * Update title. + * + * @param eioUrl String url of EIO + * @param titel String title + * @return Response response + */ + private Response updateEIO(String eioUrl, String titel) { + EIOService eioService = new EIOService(); + String lock = new JsonPath(eioService.lock(eioUrl).asString()).getString("lock"); + + JSONObject body = new JSONObject(); + body.put("titel", titel); + body.put("lock", lock); + + Response res = eioService.partialUpdate(eioUrl, body); + Assert.assertEquals(res.getStatusCode(), 200); + res = eioService.unlock(eioUrl, lock); + Assert.assertEquals(res.getStatusCode(), 204); + return res; + } } \ No newline at end of file From 17eeddc555fa2ba416e259b23a26abc22a4c007e Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Mon, 3 Apr 2023 13:34:57 +0200 Subject: [PATCH 17/33] =?UTF-8?q?=F0=9F=9A=A7=20added=20gebruiksrechten=20?= =?UTF-8?q?cache?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 1 + .../drc/service/GebruiksrechtenService.java | 31 ++++++- .../drc/tests/GebruiksrechtenCachingTest.java | 90 ++++++++++++++++--- 3 files changed, 109 insertions(+), 13 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 5641e6a..1215ba6 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -80,6 +80,7 @@ "bestandsomvang", "contezza", "Enkelvoudig", + "Gebruiksrechten", "Informatie", "informatieobjecttype", "restassured", diff --git a/src/main/java/nl/contezza/drc/service/GebruiksrechtenService.java b/src/main/java/nl/contezza/drc/service/GebruiksrechtenService.java index 2892109..047e9c9 100644 --- a/src/main/java/nl/contezza/drc/service/GebruiksrechtenService.java +++ b/src/main/java/nl/contezza/drc/service/GebruiksrechtenService.java @@ -26,7 +26,7 @@ public Response create(String eioUrl) { .response(); // @formatter:on } - + public Response create(RequestSpecification req, String eioUrl) { // @formatter:off return given() @@ -56,7 +56,7 @@ public Response list(RequestSpecification req, String informatieobject) { .response(); // @formatter:on } - + public Response get(RequestSpecification req, String url) { String id = url.substring(url.lastIndexOf('/') + 1).trim(); // @formatter:off @@ -69,4 +69,31 @@ public Response get(RequestSpecification req, String url) { .response(); // @formatter:on } + + public Response getHead(String url) { + String id = url.substring(url.lastIndexOf('/') + 1).trim(); + // @formatter:off + return given() + .spec(DRCRequestSpecification.getDefault()) + .when() + .head("/gebruiksrechten/" + id) + .then() + .extract() + .response(); + // @formatter:on + } + + public Response getIfNonMatch(String url, String eTag) { + String id = url.substring(url.lastIndexOf('/') + 1).trim(); + // @formatter:off + return given() + .spec(DRCRequestSpecification.getDefault()) + .header("If-None-Match", eTag) + .when() + .get("/gebruiksrechten/" + id) + .then() + .extract() + .response(); + // @formatter:on + } } \ No newline at end of file diff --git a/src/test/java/nl/contezza/drc/tests/GebruiksrechtenCachingTest.java b/src/test/java/nl/contezza/drc/tests/GebruiksrechtenCachingTest.java index 1f8a415..a32a340 100644 --- a/src/test/java/nl/contezza/drc/tests/GebruiksrechtenCachingTest.java +++ b/src/test/java/nl/contezza/drc/tests/GebruiksrechtenCachingTest.java @@ -1,9 +1,16 @@ package nl.contezza.drc.tests; +import org.testng.Assert; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; +import io.restassured.path.json.JsonPath; +import io.restassured.response.Response; import nl.contezza.drc.rest.RestTest; +import nl.contezza.drc.service.DRCRequestSpecification; +import nl.contezza.drc.service.EIOService; +import nl.contezza.drc.service.GebruiksrechtenService; +import nl.contezza.drc.service.ZTCService; //@Log4j2 public class GebruiksrechtenCachingTest extends RestTest { @@ -13,37 +20,98 @@ public class GebruiksrechtenCachingTest extends RestTest { */ @BeforeTest(groups = "GebruiksrechtenCaching") public void init() { - + // Create random catalogi + ZTCService ztcService = new ZTCService(); + JsonPath json = new JsonPath(ztcService.createCatalogus().asString()); + + // Create informatieobjecttype + String catalogusUrl = json.getString("url").replace(ZTC_BASE_URI, ZTC_DOCKER_URI); + json = new JsonPath(ztcService.createInformatieObjectType(catalogusUrl).asString()); + informatieobjecttypeUrl = json.getString("url").replace(ZTC_BASE_URI, ZTC_DOCKER_URI); + + // @formatter:off + Response res = ztcService.publishInformatieObjectType(informatieobjecttypeUrl.substring(informatieobjecttypeUrl.lastIndexOf('/') + 1).trim()); + Assert.assertEquals(res.getStatusCode(), 200); + // @formatter:on } - // TODO: create test + /** + * See {@link python + * code}. + */ @Test(groups = "GebruiksrechtenCaching") public void test_gebruiksrecht_get_cache_header() { + EIOService eioService = new EIOService(); + JsonPath json = new JsonPath(eioService.testCreate(informatieobjecttypeUrl).asString()); + GebruiksrechtenService gebruiksrechtenService = new GebruiksrechtenService(); + json = new JsonPath(gebruiksrechtenService.create( + json.getString("url").replace(DRC_BASE_URI, DRC_DOCKER_URI)).asString()); + + Response res = gebruiksrechtenService.get(DRCRequestSpecification.getDefault(), + json.getString("url").replace(DRC_BASE_URI, DRC_DOCKER_URI)); + Assert.assertNotNull(res.getHeader("ETag")); } - // TODO: create test + /** + * See {@link python + * code}. + */ @Test(groups = "GebruiksrechtenCaching") public void test_gebruiksrechthead_cache_header() { + EIOService eioService = new EIOService(); + JsonPath json = new JsonPath(eioService.testCreate(informatieobjecttypeUrl).asString()); - } - - // TODO: create test - @Test(groups = "GebruiksrechtenCaching") - public void test_head_in_apischema() { + GebruiksrechtenService gebruiksrechtenService = new GebruiksrechtenService(); + json = new JsonPath(gebruiksrechtenService.create( + json.getString("url").replace(DRC_BASE_URI, DRC_DOCKER_URI)).asString()); + Response res = gebruiksrechtenService.getHead(json.getString("url").replace(DRC_BASE_URI, DRC_DOCKER_URI)); + Assert.assertNotNull(res.getHeader("ETag")); } - // TODO: create test + /** + * See {@link python + * code}. + */ @Test(groups = "GebruiksrechtenCaching") public void test_conditional_get_304() { + EIOService eioService = new EIOService(); + JsonPath json = new JsonPath(eioService.testCreate(informatieobjecttypeUrl).asString()); + + GebruiksrechtenService gebruiksrechtenService = new GebruiksrechtenService(); + json = new JsonPath(gebruiksrechtenService.create( + json.getString("url").replace(DRC_BASE_URI, DRC_DOCKER_URI)).asString()); + + Response res = gebruiksrechtenService.get(DRCRequestSpecification.getDefault(), + json.getString("url").replace(DRC_BASE_URI, DRC_DOCKER_URI)); + + String eTag = "" + res.getHeader("ETag") + ""; + + // Not modified + res = gebruiksrechtenService.getIfNonMatch(json.getString("url"), eTag); + Assert.assertEquals(res.getStatusCode(), 304); } - // TODO: create test + /** + * See {@link python + * code}. + */ @Test(groups = "GebruiksrechtenCaching") public void test_conditional_get_stale() { + EIOService eioService = new EIOService(); + JsonPath json = new JsonPath(eioService.testCreate(informatieobjecttypeUrl).asString()); - } + GebruiksrechtenService gebruiksrechtenService = new GebruiksrechtenService(); + json = new JsonPath(gebruiksrechtenService.create( + json.getString("url").replace(DRC_BASE_URI, DRC_DOCKER_URI)).asString()); + Response res = gebruiksrechtenService.getIfNonMatch(json.getString("url"), "" + "not-an-md5" + ""); + Assert.assertEquals(res.getStatusCode(), 200); + } } From e77dab02ff717adef0088ac66d9cb9e95022cb6e Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Mon, 3 Apr 2023 14:45:01 +0200 Subject: [PATCH 18/33] =?UTF-8?q?=F0=9F=9A=A7=20added=20oio=20caching?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 1 + .../nl/contezza/drc/service/OIOService.java | 31 +++++ .../nl/contezza/drc/tests/OioCachingTest.java | 125 ++++++++++++++++-- 3 files changed, 146 insertions(+), 11 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 1215ba6..c877d19 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -80,6 +80,7 @@ "bestandsomvang", "contezza", "Enkelvoudig", + "enkelvoudiginformatieobject", "Gebruiksrechten", "Informatie", "informatieobjecttype", diff --git a/src/main/java/nl/contezza/drc/service/OIOService.java b/src/main/java/nl/contezza/drc/service/OIOService.java index 7ba2dec..02bfb09 100644 --- a/src/main/java/nl/contezza/drc/service/OIOService.java +++ b/src/main/java/nl/contezza/drc/service/OIOService.java @@ -55,6 +55,10 @@ public Response listOIO(RequestSpecification req, String object, String informat // @formatter:on } + public Response getOIO(String url) { + return getOIO(DRCRequestSpecification.getDefault(), url); + } + public Response getOIO(RequestSpecification req, String url) { String id = url.substring(url.lastIndexOf('/') + 1).trim(); // @formatter:off @@ -68,6 +72,33 @@ public Response getOIO(RequestSpecification req, String url) { // @formatter:on } + public Response getHeadOIO(String url) { + String id = url.substring(url.lastIndexOf('/') + 1).trim(); + // @formatter:off + return given() + .spec(DRCRequestSpecification.getDefault()) + .when() + .head("/objectinformatieobjecten/" + id) + .then() + .extract() + .response(); + // @formatter:on + } + + public Response getOioIfNonMatch(String url, String eTag) { + String id = url.substring(url.lastIndexOf('/') + 1).trim(); + // @formatter:off + return given() + .spec(DRCRequestSpecification.getDefault()) + .header("If-None-Match", eTag) + .when() + .get("/objectinformatieobjecten/" + id) + .then() + .extract() + .response(); + // @formatter:on + } + public Response delete(String url) { // @formatter:off return given() diff --git a/src/test/java/nl/contezza/drc/tests/OioCachingTest.java b/src/test/java/nl/contezza/drc/tests/OioCachingTest.java index 40d8203..b5a2617 100644 --- a/src/test/java/nl/contezza/drc/tests/OioCachingTest.java +++ b/src/test/java/nl/contezza/drc/tests/OioCachingTest.java @@ -1,12 +1,18 @@ package nl.contezza.drc.tests; +import org.testng.Assert; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; -import lombok.extern.log4j.Log4j2; +import io.restassured.path.json.JsonPath; +import io.restassured.response.Response; import nl.contezza.drc.rest.RestTest; +import nl.contezza.drc.service.EIOService; +import nl.contezza.drc.service.OIOService; +import nl.contezza.drc.service.ZRCService; +import nl.contezza.drc.service.ZTCService; -@Log4j2 +//@Log4j2 public class OioCachingTest extends RestTest { /** @@ -15,36 +21,133 @@ public class OioCachingTest extends RestTest { @BeforeTest(groups = "OioCaching") public void init() { + // Create random catalogi + ZTCService ztcService = new ZTCService(); + JsonPath json = new JsonPath(ztcService.createCatalogus().asString()); + + // Create informatieobjecttype + String catalogusUrl = json.getString("url").replace(ZTC_BASE_URI, ZTC_DOCKER_URI); + json = new JsonPath(ztcService.createInformatieObjectType(catalogusUrl).asString()); + informatieobjecttypeUrl = json.getString("url").replace(ZTC_BASE_URI, ZTC_DOCKER_URI); + + // Create zaaktype + zaakTypeTestObject = new JsonPath(ztcService.createZaaktype(catalogusUrl).asString()); + + String zaaktypeUrl = zaakTypeTestObject.getString("url").replace(ZTC_BASE_URI, ZTC_DOCKER_URI); + + // Create zaaktype-informatieobjecttype + Response res = ztcService.createZiot(zaaktypeUrl, informatieobjecttypeUrl); + Assert.assertEquals(res.getStatusCode(), 201); + + // Publish informatieobjecttype + String id = informatieobjecttypeUrl.substring(informatieobjecttypeUrl.lastIndexOf('/') + 1).trim(); + + res = ztcService.publishInformatieObjectType(id); + Assert.assertEquals(res.getStatusCode(), 200); + + // Publish zaaktype + res = ztcService.publishIZaaktype(zaaktypeUrl); + Assert.assertEquals(res.getStatusCode(), 200); + + ZRCService zrcService = new ZRCService(); + zaakTestObject = new JsonPath(zrcService.createZaak(zaaktypeUrl).asString()); } - // TODO: create test + /** + * See {@link python + * code}. + */ @Test(groups = "OioCaching") public void test_oio_get_cache_header() { + ZRCService zrcService = new ZRCService(); + EIOService eioService = new EIOService(); + OIOService oioService = new OIOService(); + + String zaakUrl = zaakTestObject.getString("url").replace(ZRC_BASE_URI, ZRC_DOCKER_URI); + String eioUrl = new JsonPath(eioService.testCreate(informatieobjecttypeUrl).asString()).getString("url"); + + zrcService.createZio(eioUrl.replace(DRC_BASE_URI, DRC_DOCKER_URI), zaakUrl); + + Response resOio = oioService.listOIO(zaakUrl, eioUrl); + String oioUrl = resOio.body().path("[0].url"); + + Response res = oioService.getOIO(oioUrl); + Assert.assertNotNull(res.getHeader("ETag")); } - // TODO: create test + /** + * See {@link python + * code}. + */ @Test(groups = "OioCaching") public void test_oio_head_cache_header() { + ZRCService zrcService = new ZRCService(); + EIOService eioService = new EIOService(); + OIOService oioService = new OIOService(); - } + String zaakUrl = zaakTestObject.getString("url").replace(ZRC_BASE_URI, ZRC_DOCKER_URI); + String eioUrl = new JsonPath(eioService.testCreate(informatieobjecttypeUrl).asString()).getString("url"); - // TODO: create test - @Test(groups = "OioCaching") - public void test_head_in_apischema() { + zrcService.createZio(eioUrl.replace(DRC_BASE_URI, DRC_DOCKER_URI), zaakUrl); + + Response resOio = oioService.listOIO(zaakUrl, eioUrl); + String oioUrl = resOio.body().path("[0].url"); + Response res = oioService.getHeadOIO(oioUrl); + Assert.assertNotNull(res.getHeader("ETag")); } - // TODO: create test + /** + * See {@link python + * code}. + */ @Test(groups = "OioCaching") public void test_conditional_get_304() { + ZRCService zrcService = new ZRCService(); + EIOService eioService = new EIOService(); + OIOService oioService = new OIOService(); + + String zaakUrl = zaakTestObject.getString("url").replace(ZRC_BASE_URI, ZRC_DOCKER_URI); + String eioUrl = new JsonPath(eioService.testCreate(informatieobjecttypeUrl).asString()).getString("url"); + + zrcService.createZio(eioUrl.replace(DRC_BASE_URI, DRC_DOCKER_URI), zaakUrl); + + Response resOio = oioService.listOIO(zaakUrl, eioUrl); + String oioUrl = resOio.body().path("[0].url"); + + Response res = oioService.getOIO(oioUrl); + String eTag = "" + res.getHeader("ETag") + ""; + + res = oioService.getOioIfNonMatch(oioUrl, eTag); + Assert.assertEquals(res.getStatusCode(), 304); } - // TODO: create test + /** + * See {@link python + * code}. + */ @Test(groups = "OioCaching") public void test_conditional_get_stale() { - } + ZRCService zrcService = new ZRCService(); + EIOService eioService = new EIOService(); + OIOService oioService = new OIOService(); + String zaakUrl = zaakTestObject.getString("url").replace(ZRC_BASE_URI, ZRC_DOCKER_URI); + String eioUrl = new JsonPath(eioService.testCreate(informatieobjecttypeUrl).asString()).getString("url"); + + zrcService.createZio(eioUrl.replace(DRC_BASE_URI, DRC_DOCKER_URI), zaakUrl); + + Response resOio = oioService.listOIO(zaakUrl, eioUrl); + String oioUrl = resOio.body().path("[0].url"); + + Response res = oioService.getOioIfNonMatch(oioUrl, "" + "not-an-md5" + ""); + Assert.assertEquals(res.getStatusCode(), 200); + } } From e93e9a52371fccac8e10ec79a9ce3c24d16323d9 Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Mon, 3 Apr 2023 15:45:34 +0200 Subject: [PATCH 19/33] =?UTF-8?q?=F0=9F=9A=A7=20added=20tests=20todo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nl/contezza/drc/tests/UploadTest.java | 139 ++++++++++++++++++ .../nl/contezza/drc/tests/VerzendingTest.java | 18 ++- 2 files changed, 150 insertions(+), 7 deletions(-) create mode 100644 src/test/java/nl/contezza/drc/tests/UploadTest.java diff --git a/src/test/java/nl/contezza/drc/tests/UploadTest.java b/src/test/java/nl/contezza/drc/tests/UploadTest.java new file mode 100644 index 0000000..7082c2c --- /dev/null +++ b/src/test/java/nl/contezza/drc/tests/UploadTest.java @@ -0,0 +1,139 @@ +package nl.contezza.drc.tests; + +import org.testng.annotations.BeforeTest; +import org.testng.annotations.Test; + +import lombok.extern.log4j.Log4j2; +import nl.contezza.drc.rest.RestTest; + +@Log4j2 +public class UploadTest extends RestTest { + + /** + * Create necessary dependencies when creating enkelvoudiginformatieobject. + */ + @BeforeTest(groups = "Upload") + public void init() { + + } + + // TODO: create test + @Test(groups = "Upload") + public void test_create_eio() { + + } + + // TODO: create test + // @Test(groups = "Upload") + public void test_create_without_file() { + + } + + // TODO: create test + // @Test(groups = "Upload") + public void test_create_empty_file() { + + } + + // TODO: create test + // @Test(groups = "Upload") + public void test_create_without_size() { + + } + + // TODO: create test + // @Test(groups = "Upload") + public void test_update_eio_metadata() { + + } + + // TODO: create test + // @Test(groups = "Upload") + public void test_update_eio_file() { + + } + + // TODO: create test + // @Test(groups = "Upload") + public void test_update_eio_file_set_empty() { + + } + + // TODO: create test + // @Test(groups = "Upload") + public void test_update_eio_only_size() { + + } + + // TODO: create test + // @Test(groups = "Upload") + public void test_update_eio_only_file_without_size() { + + } + + // TODO: create test + // @Test(groups = "Upload") + public void test_update_eio_put() { + + } + + // TODO: create test + // @Test(groups = "Upload") + public void test_create_eio_full_process() { + + } + + // TODO: create test + // @Test(groups = "Upload") + public void test_upload_part_wrong_size() { + + } + + // TODO: create test + // @Test(groups = "Upload") + public void test_upload_part_twice_correct() { + + } + + // TODO: create test + // @Test(groups = "Upload") + public void test_unlock_without_uploading() { + + } + + // TODO: create test + // @Test(groups = "Upload") + public void test_unlock_not_finish_upload() { + + } + + // TODO: create test + // @Test(groups = "Upload") + public void test_update_metadata_without_upload() { + + } + + // TODO: create test + // @Test(groups = "Upload") + public void test_update_metadata_after_unfinished_upload() { + + } + + // TODO: create test + // @Test(groups = "Upload") + public void test_update_metadata_set_size() { + + } + + // TODO: create test + // @Test(groups = "Upload") + public void test_update_metadata_set_size_zero() { + + } + + // TODO: create test + // @Test(groups = "Upload") + public void test_update_metadata_set_size_null() { + + } +} diff --git a/src/test/java/nl/contezza/drc/tests/VerzendingTest.java b/src/test/java/nl/contezza/drc/tests/VerzendingTest.java index aa9d000..a62253d 100644 --- a/src/test/java/nl/contezza/drc/tests/VerzendingTest.java +++ b/src/test/java/nl/contezza/drc/tests/VerzendingTest.java @@ -1,7 +1,6 @@ package nl.contezza.drc.tests; import org.testng.annotations.BeforeTest; -import org.testng.annotations.Test; import lombok.extern.log4j.Log4j2; import nl.contezza.drc.rest.RestTest; @@ -18,33 +17,38 @@ public void init() { } // TODO: create test - @Test(groups = "Verzending") + // @Test(groups = "Verzending") + public void test_list() { + + } + + // TODO: create test + // @Test(groups = "Verzending") public void test_detail() { } // TODO: create test - @Test(groups = "Verzending") + // @Test(groups = "Verzending") public void test_create() { } // TODO: create test - @Test(groups = "Verzending") + // @Test(groups = "Verzending") public void test_update() { } // TODO: create test - @Test(groups = "Verzending") + // @Test(groups = "Verzending") public void test_partial_update() { } // TODO: create test - @Test(groups = "Verzending") + // @Test(groups = "Verzending") public void test_delete() { } - } From 0b196343d9bdaddac544719e73d04c14d89e673d Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Mon, 3 Apr 2023 16:51:15 +0200 Subject: [PATCH 20/33] =?UTF-8?q?=F0=9F=9A=A7=20added=20some=20upload=20te?= =?UTF-8?q?sts,=20not=20finished=20yet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 1 + .../nl/contezza/drc/service/EIOService.java | 13 +++ .../nl/contezza/drc/tests/UploadTest.java | 92 +++++++++++++++++-- 3 files changed, 100 insertions(+), 6 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index c877d19..abc95bf 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -84,6 +84,7 @@ "Gebruiksrechten", "Informatie", "informatieobjecttype", + "inhoud", "restassured", "Zoek" ] diff --git a/src/main/java/nl/contezza/drc/service/EIOService.java b/src/main/java/nl/contezza/drc/service/EIOService.java index 46334cc..6389a35 100644 --- a/src/main/java/nl/contezza/drc/service/EIOService.java +++ b/src/main/java/nl/contezza/drc/service/EIOService.java @@ -2,6 +2,7 @@ import static io.restassured.RestAssured.given; +import java.io.InputStream; import java.util.Date; import java.util.HashMap; import java.util.Map; @@ -471,4 +472,16 @@ public Response search(JSONArray uuids) { .response(); // @formatter:on } + + public InputStream downloadEIO(String url, Integer version) { + // @formatter:off + return given().param("versie", version) + .spec(DRCRequestSpecification.getStream(null)) + .when() + .get(url.split("/v1")[1] + "/download") + .then() + .extract() + .asInputStream(); + // @formatter:on + } } diff --git a/src/test/java/nl/contezza/drc/tests/UploadTest.java b/src/test/java/nl/contezza/drc/tests/UploadTest.java index 7082c2c..1dd8940 100644 --- a/src/test/java/nl/contezza/drc/tests/UploadTest.java +++ b/src/test/java/nl/contezza/drc/tests/UploadTest.java @@ -1,10 +1,17 @@ package nl.contezza.drc.tests; +import org.json.JSONObject; +import org.testng.Assert; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; +import io.restassured.path.json.JsonPath; +import io.restassured.response.Response; import lombok.extern.log4j.Log4j2; +import nl.contezza.drc.dataprovider.DRCDataProvider; import nl.contezza.drc.rest.RestTest; +import nl.contezza.drc.service.EIOService; +import nl.contezza.drc.service.ZTCService; @Log4j2 public class UploadTest extends RestTest { @@ -14,35 +21,108 @@ public class UploadTest extends RestTest { */ @BeforeTest(groups = "Upload") public void init() { + // Create random catalogi + ZTCService ztcService = new ZTCService(); + JsonPath json = new JsonPath(ztcService.createCatalogus().asString()); + // Create informatieobjecttype + String catalogusUrl = json.getString("url").replace(ZTC_BASE_URI, ZTC_DOCKER_URI); + json = new JsonPath(ztcService.createInformatieObjectType(catalogusUrl).asString()); + informatieobjecttypeUrl = json.getString("url").replace(ZTC_BASE_URI, ZTC_DOCKER_URI); + + // @formatter:off + Response res = ztcService.publishInformatieObjectType(informatieobjecttypeUrl.substring(informatieobjecttypeUrl.lastIndexOf('/') + 1).trim()); + Assert.assertEquals(res.getStatusCode(), 200); + // @formatter:on } - // TODO: create test - @Test(groups = "Upload") + /** + * See {@link python + * code}. + */ + // @Test(groups = "Upload") public void test_create_eio() { + EIOService eioService = new EIOService(); + + Response res = eioService.testCreate(informatieobjecttypeUrl); + Assert.assertEquals(res.getStatusCode(), 201); + + JsonPath json = new JsonPath(res.asString()); + String data = eioService.downloadAsString(json.getString("inhoud")); + + Assert.assertEquals(json.getList("bestandsdelen").size(), 0); + Assert.assertEquals(data, "some file content"); + Assert.assertEquals(json.getBoolean("locked"), false); + Assert.assertEquals(json.getString("titel"), "detailed summary"); } - // TODO: create test + /** + * See {@link python + * code}. + */ // @Test(groups = "Upload") public void test_create_without_file() { + EIOService eioService = new EIOService(); + + JSONObject jsonObject = new JSONObject(DRCDataProvider.testCreate(informatieobjecttypeUrl)); + + jsonObject.put("inhoud", JSONObject.NULL); + jsonObject.put("bestandsomvang", JSONObject.NULL); + + Response res = eioService.testCreate(jsonObject); + Assert.assertEquals(res.getStatusCode(), 201); + JsonPath json = new JsonPath(res.asString()); + + Assert.assertNull(json.getString("inhoud")); + Assert.assertNull(json.getString("bestandsomvang")); } - // TODO: create test + /** + * See {@link python + * code}. + */ // @Test(groups = "Upload") public void test_create_empty_file() { + EIOService eioService = new EIOService(); + + JSONObject jsonObject = new JSONObject(DRCDataProvider.testCreate(informatieobjecttypeUrl)); + + jsonObject.put("inhoud", JSONObject.NULL); + jsonObject.put("bestandsomvang", 0); + + Response res = eioService.testCreate(jsonObject); + Assert.assertEquals(res.getStatusCode(), 201); + JsonPath json = new JsonPath(res.asString()); + String data = eioService.downloadAsString(json.getString("inhoud")); + + Assert.assertEquals(data, ""); } - // TODO: create test + /** + * See {@link python + * code}. + */ // @Test(groups = "Upload") public void test_create_without_size() { + EIOService eioService = new EIOService(); + JSONObject jsonObject = new JSONObject(DRCDataProvider.testCreate(informatieobjecttypeUrl)); + jsonObject.remove("bestandsomvang"); + + Response res = eioService.testCreate(jsonObject); + Assert.assertEquals(res.getStatusCode(), 400); + Assert.assertEquals(res.body().path("invalidParams[0].code"), "file-size"); } // TODO: create test - // @Test(groups = "Upload") + @Test(groups = "Upload") public void test_update_eio_metadata() { } From c9414df0186c32c22a480a20339f25fdd8db31c9 Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Tue, 4 Apr 2023 15:02:54 +0200 Subject: [PATCH 21/33] =?UTF-8?q?=F0=9F=9A=A7=20added=20more=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nl/contezza/drc/tests/UploadTest.java | 114 +++++++++++++++--- 1 file changed, 98 insertions(+), 16 deletions(-) diff --git a/src/test/java/nl/contezza/drc/tests/UploadTest.java b/src/test/java/nl/contezza/drc/tests/UploadTest.java index 1dd8940..58126c3 100644 --- a/src/test/java/nl/contezza/drc/tests/UploadTest.java +++ b/src/test/java/nl/contezza/drc/tests/UploadTest.java @@ -1,9 +1,10 @@ package nl.contezza.drc.tests; +import java.util.Base64; + import org.json.JSONObject; import org.testng.Assert; import org.testng.annotations.BeforeTest; -import org.testng.annotations.Test; import io.restassured.path.json.JsonPath; import io.restassured.response.Response; @@ -121,46 +122,127 @@ public void test_create_without_size() { Assert.assertEquals(res.body().path("invalidParams[0].code"), "file-size"); } - // TODO: create test - @Test(groups = "Upload") + /** + * See {@link python + * code}. + */ + // @Test(groups = "Upload") public void test_update_eio_metadata() { + EIOService eioService = new EIOService(); + + String eioUrl = new JsonPath(eioService.testCreate(informatieobjecttypeUrl).asString()).getString("url"); + String lock = new JsonPath(eioService.lock(eioUrl).asString()).getString("lock"); + JSONObject body = new JSONObject(); + body.put("titel", "another summary"); + body.put("lock", lock); + + Response res = eioService.partialUpdate(eioUrl, body); + JsonPath json = new JsonPath(res.asString()); + + Assert.assertEquals(res.getStatusCode(), 200); + Assert.assertEquals(json.getString("titel"), "another summary"); + Assert.assertEquals(json.getString("versie"), "2"); + Assert.assertEquals(json.getList("bestandsdelen").size(), 0); } - // TODO: create test + /** + * See {@link python + * code}. + */ // @Test(groups = "Upload") public void test_update_eio_file() { + EIOService eioService = new EIOService(); + + String eioUrl = new JsonPath(eioService.testCreate(informatieobjecttypeUrl).asString()).getString("url"); + String lock = new JsonPath(eioService.lock(eioUrl).asString()).getString("lock"); + + JSONObject body = new JSONObject(); + body.put("inhoud", Base64.getEncoder().encodeToString("some other file content".getBytes())); + body.put("bestandsomvang", "some other file content".getBytes().length); + body.put("lock", lock); + + Response res = eioService.partialUpdate(eioUrl, body); + JsonPath json = new JsonPath(res.asString()); + + String data = eioService.downloadAsString(json.getString("inhoud")); + Assert.assertEquals(res.getStatusCode(), 200); + Assert.assertEquals(data, "some other file content"); } - // TODO: create test + /** + * See {@link python + * code}. + */ // @Test(groups = "Upload") public void test_update_eio_file_set_empty() { + EIOService eioService = new EIOService(); + + String eioUrl = new JsonPath(eioService.testCreate(informatieobjecttypeUrl).asString()).getString("url"); + String lock = new JsonPath(eioService.lock(eioUrl).asString()).getString("lock"); + JSONObject body = new JSONObject(); + body.put("inhoud", JSONObject.NULL); + body.put("bestandsomvang", JSONObject.NULL); + body.put("lock", lock); + + Response res = eioService.partialUpdate(eioUrl, body); + JsonPath json = new JsonPath(res.asString()); + + Assert.assertEquals(res.getStatusCode(), 200); + Assert.assertNull(json.getString("inhoud")); + Assert.assertNull(json.getString("bestandsomvang")); + Assert.assertEquals(json.getList("bestandsdelen").size(), 0); } - // TODO: create test + /** + * See {@link python + * code}. + */ // @Test(groups = "Upload") public void test_update_eio_only_size() { + EIOService eioService = new EIOService(); - } + String eioUrl = new JsonPath(eioService.testCreate(informatieobjecttypeUrl).asString()).getString("url"); + String lock = new JsonPath(eioService.lock(eioUrl).asString()).getString("lock"); - // TODO: create test - // @Test(groups = "Upload") - public void test_update_eio_only_file_without_size() { + JSONObject body = new JSONObject(); + body.put("bestandsomvang", 20); + body.put("lock", lock); + Response res = eioService.partialUpdate(eioUrl, body); + + Assert.assertEquals(res.getStatusCode(), 400); + Assert.assertEquals(res.body().path("invalidParams[0].name"), "nonFieldErrors"); + Assert.assertEquals(res.body().path("invalidParams[0].code"), "file-size"); } - // TODO: create test + /** + * See {@link python + * code}. + */ // @Test(groups = "Upload") - public void test_update_eio_put() { + public void test_update_eio_only_file_without_size() { + EIOService eioService = new EIOService(); - } + String eioUrl = new JsonPath(eioService.testCreate(informatieobjecttypeUrl).asString()).getString("url"); + String lock = new JsonPath(eioService.lock(eioUrl).asString()).getString("lock"); - // TODO: create test - // @Test(groups = "Upload") - public void test_create_eio_full_process() { + JSONObject body = new JSONObject(); + body.put("inhoud", Base64.getEncoder().encodeToString("some other file content".getBytes())); + body.put("lock", lock); + + Response res = eioService.partialUpdate(eioUrl, body); + Assert.assertEquals(res.getStatusCode(), 400); + Assert.assertEquals(res.body().path("invalidParams[0].name"), "nonFieldErrors"); + Assert.assertEquals(res.body().path("invalidParams[0].code"), "file-size"); } // TODO: create test From 70890f4bb43c689e176b75bc1305f2ee34c3a1c4 Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Wed, 5 Apr 2023 10:41:45 +0200 Subject: [PATCH 22/33] =?UTF-8?q?=F0=9F=9A=A7=20added=20more=20test=20scri?= =?UTF-8?q?pts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../drc/service/DRCRequestSpecification.java | 18 ++--- .../nl/contezza/drc/service/EIOService.java | 13 ++++ .../contezza/drc/service/UploadService.java | 61 ++++++++++++++++ .../nl/contezza/drc/tests/UploadTest.java | 71 +++++++++++++++++-- 4 files changed, 149 insertions(+), 14 deletions(-) create mode 100644 src/main/java/nl/contezza/drc/service/UploadService.java diff --git a/src/main/java/nl/contezza/drc/service/DRCRequestSpecification.java b/src/main/java/nl/contezza/drc/service/DRCRequestSpecification.java index a78514c..f598594 100644 --- a/src/main/java/nl/contezza/drc/service/DRCRequestSpecification.java +++ b/src/main/java/nl/contezza/drc/service/DRCRequestSpecification.java @@ -22,10 +22,10 @@ public class DRCRequestSpecification { public static final String BASE_PATH = PropertyLoader.getBasePath(); private static final String CLIENT_ID = PropertyLoader.getClientID(); private static final String SECRET = PropertyLoader.getSecret(); - + public static final String CLIENT_ID_READONLY = PropertyLoader.getClientIDReadonly(); private static final String SECRET_READONLY = PropertyLoader.getSecretReadonly(); - + public static final String CLIENT_ID_WRONG_SCOPE = PropertyLoader.getClientIDWrongScope(); private static final String SECRET_WRONG_SCOPE = PropertyLoader.getSecretWrongScope(); @@ -38,14 +38,15 @@ public class DRCRequestSpecification { private static final String ZRC_BASE_PATH = PropertyLoader.getZRCBasePath(); private static final String ZRC_CLIENT_ID = PropertyLoader.getZRCClientID(); private static final String ZRC_SECRET = PropertyLoader.getZRCSecret(); - + private static final String AC_BASE_URI = PropertyLoader.getACBaseURI(); private static final String AC_BASE_PATH = PropertyLoader.getACBasePath(); private static final String AC_CLIENT_ID = PropertyLoader.getACClientID(); private static final String AC_SECRET = PropertyLoader.getACSecret(); /** - * Default request specification for interacting with documentregistratiecomponent. + * Default request specification for interacting with + * documentregistratiecomponent. * * @return RequestSpecification specification */ @@ -68,7 +69,7 @@ public static RequestSpecification getDefault() { .build(); // @formatter:on } - + public static RequestSpecification getReadonly() { RestAssured.enableLoggingOfRequestAndResponseIfValidationFails(); // @formatter:off @@ -88,7 +89,7 @@ public static RequestSpecification getReadonly() { .build(); // @formatter:on } - + public static RequestSpecification getWrongScope() { RestAssured.enableLoggingOfRequestAndResponseIfValidationFails(); // @formatter:off @@ -204,7 +205,7 @@ public static RequestSpecification getZRC() { .build(); // @formatter:on } - + public static RequestSpecification getAC() { RestAssured.enableLoggingOfRequestAndResponseIfValidationFails(); // @formatter:off @@ -238,6 +239,7 @@ public static String getToken(String clientId, String secret, Integer tokenExpir Calendar now = Calendar.getInstance(); now.add(Calendar.MINUTE, tokenExpiresInMinutes); Date until = now.getTime(); - return JWT.create().withIssuer(clientId).withClaim("client_id", clientId).withIssuedAt(new Date()).withExpiresAt(until).sign(algorithm); + return JWT.create().withIssuer(clientId).withClaim("client_id", clientId).withIssuedAt(new Date()) + .withExpiresAt(until).sign(algorithm); } } diff --git a/src/main/java/nl/contezza/drc/service/EIOService.java b/src/main/java/nl/contezza/drc/service/EIOService.java index 6389a35..bc0348b 100644 --- a/src/main/java/nl/contezza/drc/service/EIOService.java +++ b/src/main/java/nl/contezza/drc/service/EIOService.java @@ -51,6 +51,19 @@ public Response testCreate(JSONObject jsonObject) { // @formatter:on } + public Response testCreate(RequestSpecification requestSpecification, JSONObject jsonObject) { + // @formatter:off + return given() + .spec(DRCRequestSpecification.getDefault()) + .body(jsonObject.toString()) + .when() + .post("/enkelvoudiginformatieobjecten") + .then() + .extract() + .response(); + // @formatter:on + } + public Response testCreate(RequestSpecification requestSpecification, String iot) { // @formatter:off return given() diff --git a/src/main/java/nl/contezza/drc/service/UploadService.java b/src/main/java/nl/contezza/drc/service/UploadService.java new file mode 100644 index 0000000..5fd377f --- /dev/null +++ b/src/main/java/nl/contezza/drc/service/UploadService.java @@ -0,0 +1,61 @@ +package nl.contezza.drc.service; + +import static io.restassured.RestAssured.given; + +import java.io.File; +import java.io.IOException; + +import org.apache.commons.io.FileUtils; +import org.apache.commons.lang3.RandomStringUtils; + +import io.restassured.response.Response; +import lombok.AllArgsConstructor; +import lombok.extern.log4j.Log4j2; + +@Log4j2 +@AllArgsConstructor +public class UploadService { + + private static final String TARGET_LOCATION = "target/"; + + /** + * Create plain text file. + * + * @param contents String the contents of file + * @return File the file + */ + public File createTextFile(String contents) { + try { + File file = new File(TARGET_LOCATION + RandomStringUtils.random(10, true, false) + ".txt"); + FileUtils.writeStringToFile(file, contents, "UTF-8"); + return file; + } catch (IOException e) { + log.error(e); + } + return null; + } + + /** + * Upload file + * + * @param url String bestandsdelen url + * @param lock String lock id + * @param file File the file to upload + * @return Response response + */ + public Response uploadFile(String url, String lock, File file) { + String id = url.substring(url.lastIndexOf('/') + 1).trim(); + // @formatter:off + return given() + .spec(DRCRequestSpecification.getStream(null)) + .when() + .multiPart("inhoud", file) + .multiPart("lock", lock) + .when() + .put("/bestandsdelen/" + id) + .then() + .extract() + .response(); + // @formatter:on + } +} diff --git a/src/test/java/nl/contezza/drc/tests/UploadTest.java b/src/test/java/nl/contezza/drc/tests/UploadTest.java index 58126c3..f390d53 100644 --- a/src/test/java/nl/contezza/drc/tests/UploadTest.java +++ b/src/test/java/nl/contezza/drc/tests/UploadTest.java @@ -1,7 +1,9 @@ package nl.contezza.drc.tests; +import java.io.File; import java.util.Base64; +import org.json.JSONArray; import org.json.JSONObject; import org.testng.Assert; import org.testng.annotations.BeforeTest; @@ -11,7 +13,10 @@ import lombok.extern.log4j.Log4j2; import nl.contezza.drc.dataprovider.DRCDataProvider; import nl.contezza.drc.rest.RestTest; +import nl.contezza.drc.service.AuthService; +import nl.contezza.drc.service.DRCRequestSpecification; import nl.contezza.drc.service.EIOService; +import nl.contezza.drc.service.UploadService; import nl.contezza.drc.service.ZTCService; @Log4j2 @@ -245,22 +250,76 @@ public void test_update_eio_only_file_without_size() { Assert.assertEquals(res.body().path("invalidParams[0].code"), "file-size"); } - // TODO: create test + /** + * See {@link python + * code}. + */ // @Test(groups = "Upload") public void test_upload_part_wrong_size() { + UploadService uploadService = new UploadService(); + EIOService eioService = new EIOService(); - } + JSONObject jsonObject = new JSONObject(DRCDataProvider.testCreate(informatieobjecttypeUrl)); + jsonObject.put("inhoud", JSONObject.NULL); + jsonObject.put("bestandsomvang", "some content for file".getBytes().length + 1); - // TODO: create test - // @Test(groups = "Upload") - public void test_upload_part_twice_correct() { + Response res = eioService.testCreate(jsonObject); + + String uploadUrl = res.body().path("bestandsdelen[0].url"); + String lock = res.body().path("lock"); + File file = uploadService.createTextFile("some content for file"); + res = uploadService.uploadFile(uploadUrl, lock, file); + + Assert.assertEquals(res.getStatusCode(), 400); + Assert.assertEquals(res.body().path("invalidParams[0].name"), "nonFieldErrors"); + Assert.assertEquals(res.body().path("invalidParams[0].code"), "file-size"); } - // TODO: create test + /** + * See {@link python + * code}. + */ // @Test(groups = "Upload") public void test_unlock_without_uploading() { + AuthService authService = new AuthService(); + + JSONArray scopes = new JSONArray().put("documenten.lezen").put("documenten.aanmaken") + .put("documenten.bijwerken").put("documenten.lock"); + String maxVertrouwelijkheid = "zeer_geheim"; + + JSONObject comp = new JSONObject(); + comp.put("component", "drc"); + comp.put("scopes", scopes); + comp.put("informatieobjecttype", informatieobjecttypeUrl); + comp.put("maxVertrouwelijkheidaanduiding", maxVertrouwelijkheid); + authService.updateReadOnlyClientScope(scopes, new JSONArray().put(comp), false); + + wait(2000); + + EIOService eioService = new EIOService(); + + JSONObject jsonObject = new JSONObject(DRCDataProvider.testCreate(informatieobjecttypeUrl)); + jsonObject.put("inhoud", JSONObject.NULL); + jsonObject.put("bestandsomvang", "some content for file".getBytes().length); + + Response res = eioService.testCreate(DRCRequestSpecification.getReadonly(), jsonObject); + + String eioUrl = res.body().path("url"); + String uploadUrl = res.body().path("bestandsdelen[0].url"); + String lock = res.body().path("lock"); + + Assert.assertNotNull(uploadUrl); + Assert.assertNotNull(lock); + + res = eioService.unlock(DRCRequestSpecification.getReadonly(), eioUrl, lock); + + Assert.assertEquals(res.getStatusCode(), 400); + Assert.assertEquals(res.body().path("invalidParams[0].name"), "nonFieldErrors"); + Assert.assertEquals(res.body().path("invalidParams[0].code"), "file-size"); } // TODO: create test From fc0fd64234faa2a942f8e9e268456a305a9aaf43 Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Wed, 5 Apr 2023 13:20:50 +0200 Subject: [PATCH 23/33] =?UTF-8?q?=F0=9F=9A=80=20complete=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nl/contezza/drc/tests/UploadTest.java | 160 ++++++++++++++---- 1 file changed, 130 insertions(+), 30 deletions(-) diff --git a/src/test/java/nl/contezza/drc/tests/UploadTest.java b/src/test/java/nl/contezza/drc/tests/UploadTest.java index f390d53..b1cc09e 100644 --- a/src/test/java/nl/contezza/drc/tests/UploadTest.java +++ b/src/test/java/nl/contezza/drc/tests/UploadTest.java @@ -7,10 +7,10 @@ import org.json.JSONObject; import org.testng.Assert; import org.testng.annotations.BeforeTest; +import org.testng.annotations.Test; import io.restassured.path.json.JsonPath; import io.restassured.response.Response; -import lombok.extern.log4j.Log4j2; import nl.contezza.drc.dataprovider.DRCDataProvider; import nl.contezza.drc.rest.RestTest; import nl.contezza.drc.service.AuthService; @@ -19,7 +19,7 @@ import nl.contezza.drc.service.UploadService; import nl.contezza.drc.service.ZTCService; -@Log4j2 +//@Log4j2 public class UploadTest extends RestTest { /** @@ -47,7 +47,7 @@ public void init() { * "https://github.com/VNG-Realisatie/documenten-api/blob/1.3.0/src/drc/tests/test_upload.py#L43">python * code}. */ - // @Test(groups = "Upload") + @Test(groups = "Upload") public void test_create_eio() { EIOService eioService = new EIOService(); @@ -69,7 +69,7 @@ public void test_create_eio() { * "https://github.com/VNG-Realisatie/documenten-api/blob/1.3.0/src/drc/tests/test_upload.py#L92">python * code}. */ - // @Test(groups = "Upload") + @Test(groups = "Upload") public void test_create_without_file() { EIOService eioService = new EIOService(); @@ -92,7 +92,7 @@ public void test_create_without_file() { * "https://github.com/VNG-Realisatie/documenten-api/blob/1.3.0/src/drc/tests/test_upload.py#L132">python * code}. */ - // @Test(groups = "Upload") + @Test(groups = "Upload") public void test_create_empty_file() { EIOService eioService = new EIOService(); @@ -115,7 +115,7 @@ public void test_create_empty_file() { * "https://github.com/VNG-Realisatie/documenten-api/blob/1.3.0/src/drc/tests/test_upload.py#L180">python * code}. */ - // @Test(groups = "Upload") + @Test(groups = "Upload") public void test_create_without_size() { EIOService eioService = new EIOService(); @@ -132,7 +132,7 @@ public void test_create_without_size() { * "https://github.com/VNG-Realisatie/documenten-api/blob/1.3.0/src/drc/tests/test_upload.py#L217">python * code}. */ - // @Test(groups = "Upload") + @Test(groups = "Upload") public void test_update_eio_metadata() { EIOService eioService = new EIOService(); @@ -157,7 +157,7 @@ public void test_update_eio_metadata() { * "https://github.com/VNG-Realisatie/documenten-api/blob/1.3.0/src/drc/tests/test_upload.py#L258">python * code}. */ - // @Test(groups = "Upload") + @Test(groups = "Upload") public void test_update_eio_file() { EIOService eioService = new EIOService(); @@ -183,7 +183,7 @@ public void test_update_eio_file() { * "https://github.com/VNG-Realisatie/documenten-api/blob/1.3.0/src/drc/tests/test_upload.py#L304">python * code}. */ - // @Test(groups = "Upload") + @Test(groups = "Upload") public void test_update_eio_file_set_empty() { EIOService eioService = new EIOService(); @@ -209,7 +209,7 @@ public void test_update_eio_file_set_empty() { * "https://github.com/VNG-Realisatie/documenten-api/blob/1.3.0/src/drc/tests/test_upload.py#L341">python * code}. */ - // @Test(groups = "Upload") + @Test(groups = "Upload") public void test_update_eio_only_size() { EIOService eioService = new EIOService(); @@ -232,7 +232,7 @@ public void test_update_eio_only_size() { * "https://github.com/VNG-Realisatie/documenten-api/blob/1.3.0/src/drc/tests/test_upload.py#L371">python * code}. */ - // @Test(groups = "Upload") + @Test(groups = "Upload") public void test_update_eio_only_file_without_size() { EIOService eioService = new EIOService(); @@ -255,7 +255,7 @@ public void test_update_eio_only_file_without_size() { * "https://github.com/VNG-Realisatie/documenten-api/blob/1.3.0/src/drc/tests/test_upload.py#L606">python * code}. */ - // @Test(groups = "Upload") + @Test(groups = "Upload") public void test_upload_part_wrong_size() { UploadService uploadService = new UploadService(); EIOService eioService = new EIOService(); @@ -282,7 +282,7 @@ public void test_upload_part_wrong_size() { * "https://github.com/VNG-Realisatie/documenten-api/blob/1.3.0/src/drc/tests/test_upload.py#L672">python * code}. */ - // @Test(groups = "Upload") + @Test(groups = "Upload") public void test_unlock_without_uploading() { AuthService authService = new AuthService(); @@ -322,39 +322,139 @@ public void test_unlock_without_uploading() { Assert.assertEquals(res.body().path("invalidParams[0].code"), "file-size"); } - // TODO: create test - // @Test(groups = "Upload") - public void test_unlock_not_finish_upload() { + /** + * See {@link python + * code}. + */ + @Test(groups = "Upload") + public void test_unlock_not_finish_upload_force() { + AuthService authService = new AuthService(); + + JSONArray scopes = new JSONArray().put("documenten.lezen").put("documenten.aanmaken") + .put("documenten.bijwerken").put("documenten.lock").put("documenten.geforceerd-unlock"); + String maxVertrouwelijkheid = "zeer_geheim"; + + JSONObject comp = new JSONObject(); + comp.put("component", "drc"); + comp.put("scopes", scopes); + comp.put("informatieobjecttype", informatieobjecttypeUrl); + comp.put("maxVertrouwelijkheidaanduiding", maxVertrouwelijkheid); + + authService.updateReadOnlyClientScope(scopes, new JSONArray().put(comp), false); + + wait(2000); + + EIOService eioService = new EIOService(); + + JSONObject jsonObject = new JSONObject(DRCDataProvider.testCreate(informatieobjecttypeUrl)); + jsonObject.put("inhoud", JSONObject.NULL); + jsonObject.put("bestandsomvang", "some content for file".getBytes().length); + Response res = eioService.testCreate(DRCRequestSpecification.getReadonly(), jsonObject); + + String eioUrl = res.body().path("url"); + String uploadUrl = res.body().path("bestandsdelen[0].url"); + String lock = res.body().path("lock"); + + Assert.assertNotNull(uploadUrl); + Assert.assertNotNull(lock); + + res = eioService.unlock(DRCRequestSpecification.getReadonly(), eioUrl, lock); + + JsonPath json = new JsonPath(eioService.getEIO(DRCRequestSpecification.getReadonly(), eioUrl, null).asString()); + + // When no parts are uploaded, apparently bestandsdelen will be present + Assert.assertEquals(res.getStatusCode(), 204); + Assert.assertEquals(json.getList("bestandsdelen").size(), 1); + Assert.assertNull(json.get("inhoud")); } - // TODO: create test - // @Test(groups = "Upload") + /** + * See {@link python + * code}. + */ + @Test(groups = "Upload") public void test_update_metadata_without_upload() { - } + EIOService eioService = new EIOService(); - // TODO: create test - // @Test(groups = "Upload") - public void test_update_metadata_after_unfinished_upload() { + JSONObject jsonObject = new JSONObject(DRCDataProvider.testCreate(informatieobjecttypeUrl)); + jsonObject.put("inhoud", JSONObject.NULL); + jsonObject.put("bestandsomvang", "some content for file".getBytes().length + 1); - } + Response res = eioService.testCreate(jsonObject); - // TODO: create test - // @Test(groups = "Upload") - public void test_update_metadata_set_size() { + JSONObject body = new JSONObject(); + body.put("beschrijving", "beschrijving2"); + body.put("lock", res.body().path("lock").toString()); + + res = eioService.partialUpdate(res.body().path("url"), body); + + JsonPath json = new JsonPath(res.asString()); + Assert.assertEquals(res.getStatusCode(), 200); + Assert.assertEquals(json.getList("bestandsdelen").size(), 1); + Assert.assertEquals(json.getString("beschrijving"), "beschrijving2"); + Assert.assertNull(res.getBody().path("inhoud")); } - // TODO: create test - // @Test(groups = "Upload") + /** + * See {@link python + * code}. + */ + @Test(groups = "Upload") public void test_update_metadata_set_size_zero() { + EIOService eioService = new EIOService(); + + JSONObject jsonObject = new JSONObject(DRCDataProvider.testCreate(informatieobjecttypeUrl)); + jsonObject.put("inhoud", JSONObject.NULL); + jsonObject.put("bestandsomvang", "some content for file".getBytes().length); + + Response res = eioService.testCreate(jsonObject); + + String lock = res.body().path("lock"); + + JSONObject body = new JSONObject(); + body.put("bestandsomvang", 0); + body.put("lock", lock); + + res = eioService.partialUpdate(res.body().path("url"), body); + JsonPath json = new JsonPath(res.asString()); + Assert.assertEquals(res.getStatusCode(), 200); + Assert.assertEquals(json.getList("bestandsdelen").size(), 0); } - // TODO: create test - // @Test(groups = "Upload") + /** + * See {@link python + * code}. + */ + @Test(groups = "Upload") public void test_update_metadata_set_size_null() { + EIOService eioService = new EIOService(); + + JSONObject jsonObject = new JSONObject(DRCDataProvider.testCreate(informatieobjecttypeUrl)); + jsonObject.put("inhoud", JSONObject.NULL); + jsonObject.put("bestandsomvang", "some content for file".getBytes().length); + Response res = eioService.testCreate(jsonObject); + + String lock = res.body().path("lock"); + + JSONObject body = new JSONObject(); + body.put("bestandsomvang", JSONObject.NULL); + body.put("lock", lock); + + res = eioService.partialUpdate(res.body().path("url"), body); + JsonPath json = new JsonPath(res.asString()); + + Assert.assertEquals(res.getStatusCode(), 200); + Assert.assertEquals(json.getList("bestandsdelen").size(), 0); + Assert.assertNull(json.get("bestandsomvang")); + Assert.assertNull(json.get("inhoud")); } } From 60167cfff2029fc0742fac42d6cdfbd3f6fb5c89 Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Wed, 5 Apr 2023 13:35:47 +0200 Subject: [PATCH 24/33] =?UTF-8?q?=F0=9F=93=98=20updated=20readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 83b50cd..39b3f30 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # DRC Test Automation System -Document registration component (DRC) **T**est **A**utomation **S**ystem (TAS) **RESTAPI** is the project used for testing the DRC API according to reference implementation of VNG Realisatie. The unit tests described in this project are translated [python](https://www.python.org) tests from the [documenten api](https://github.com/VNG-Realisatie/documenten-api/tree/stable/1.0.x/src/drc/api/tests) repository. +Document registration component (DRC) **T**est **A**utomation **S**ystem (TAS) **RESTAPI** is the project used for testing the DRC API according to reference implementation of VNG Realisatie. The unit tests described in this project are translated [python](https://www.python.org) tests from the [documenten api](https://github.com/VNG-Realisatie/documenten-api/tree/1.3.0/src/drc/tests) repository. The following components are used in this project: @@ -12,10 +12,24 @@ If using Eclipse install Lombok (Help -> Install New Software -> https://project ## Tests -Overview of the unit tests as described on [documenten api](https://github.com/VNG-Realisatie/documenten-api/tree/stable/1.0.x/src/drc/api/tests) repository. - -  ✔ [test_enkelvoudiginformatieobject.py](https://github.com/VNG-Realisatie/documenten-api/blob/stable/1.0.x/src/drc/api/tests/test_enkelvoudiginformatieobject.py) (25) \ -  ✔ [test_auth.py](https://github.com/VNG-Realisatie/documenten-api/blob/stable/1.0.x/src/drc/api/tests/test_auth.py) (9) +Overview of the unit tests as described on [documenten api](https://github.com/VNG-Realisatie/documenten-api/tree/1.3.0/src/drc/tests) repository. The following unit tests are available: + +  ✔ [EnkelvoudigInformatieObjectCachingTest](src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectCachingTest.java) \ +  ✔ [EnkelvoudigInformatieObjectPaginationTest](src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectPaginationTest.java) \ +  ✔ [EnkelvoudigInformatieObjectTest](src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectTest.java) \ +  ✔ [EnkelvoudigInformatieObjectTest](src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectTest.java) \ +  ✔ [EnkelvoudigInformatieObjectVersionHistoryTest](src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectVersionHistoryTest.java) \ +  ✔ [EnkelvoudigInformatieObjectZoekTest](src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectZoekTest.java) \ +  ✔ [GebruiksrechtenCachingTest](src/test/java/nl/contezza/drc/tests/GebruiksrechtenCachingTest.java) \ +  ✔ [GebruiksrechtenReadTest](src/test/java/nl/contezza/drc/tests/GebruiksrechtenReadTest.java) \ +  ✔ [InformatieObjectReadCorrectScopeTest](src/test/java/nl/contezza/drc/tests/InformatieObjectReadCorrectScopeTest.java) \ +  ✔ [InformatieObjectScopeForbiddenTest](src/test/java/nl/contezza/drc/tests/InformatieObjectScopeForbiddenTest.java) \ +  ✔ [OioCachingTest](src/test/java/nl/contezza/drc/tests/OioCachingTest.java) \ +  ✔ [OioReadTest](src/test/java/nl/contezza/drc/tests/OioReadTest.java) \ +  ✔ [UploadTest](src/test/java/nl/contezza/drc/tests/UploadTest.java) \ +  ✔ [VerzendingTest](src/test/java/nl/contezza/drc/tests/VerzendingTest.java) + +There are also some [custom unit tests](src/test/java/nl/contezza/drc/tests/custom) described that are not available in the python tests. ## Docker From fd4e38557e352b1bc45d40b705812805db1bf6fe Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Wed, 5 Apr 2023 14:22:45 +0200 Subject: [PATCH 25/33] disabled unused import --- src/test/java/nl/contezza/drc/tests/VerzendingTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/test/java/nl/contezza/drc/tests/VerzendingTest.java b/src/test/java/nl/contezza/drc/tests/VerzendingTest.java index a62253d..0ecd5cc 100644 --- a/src/test/java/nl/contezza/drc/tests/VerzendingTest.java +++ b/src/test/java/nl/contezza/drc/tests/VerzendingTest.java @@ -2,10 +2,9 @@ import org.testng.annotations.BeforeTest; -import lombok.extern.log4j.Log4j2; import nl.contezza.drc.rest.RestTest; -@Log4j2 +//@Log4j2 public class VerzendingTest extends RestTest { /** From ebe7e648df58e201c1a391c577c319cb80231a16 Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Wed, 5 Apr 2023 16:43:24 +0200 Subject: [PATCH 26/33] =?UTF-8?q?=E2=9E=95=20validate=20status=20code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../drc/tests/EnkelvoudigInformatieObjectCachingTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectCachingTest.java b/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectCachingTest.java index 2a1eaa2..c1e5bc4 100644 --- a/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectCachingTest.java +++ b/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectCachingTest.java @@ -61,6 +61,7 @@ public void test_eio_head_cache_header() { Response res = eioService.getHeadEIO(eioUrl); Assert.assertNotNull(res.getHeader("ETag")); + Assert.assertEquals(res.getStatusCode(), 200); } /** From e129da35bb6e7d1a4ffc835eb06a0f7aff16f7d5 Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Wed, 5 Apr 2023 16:49:40 +0200 Subject: [PATCH 27/33] =?UTF-8?q?=E2=9A=99=EF=B8=8F=20set=20token=20expire?= =?UTF-8?q?s=20to=2060=20min?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../drc/service/DRCRequestSpecification.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/nl/contezza/drc/service/DRCRequestSpecification.java b/src/main/java/nl/contezza/drc/service/DRCRequestSpecification.java index f598594..effcc74 100644 --- a/src/main/java/nl/contezza/drc/service/DRCRequestSpecification.java +++ b/src/main/java/nl/contezza/drc/service/DRCRequestSpecification.java @@ -62,7 +62,7 @@ public static RequestSpecification getDefault() { .setBasePath(BASE_PATH) .addHeader( "Authorization", - "Bearer " + getToken(CLIENT_ID, SECRET, 10) + "Bearer " + getToken(CLIENT_ID, SECRET, 60) ) .log(LogDetail.ALL) .addFilter(new ResponseLoggingFilter()) @@ -102,7 +102,7 @@ public static RequestSpecification getWrongScope() { .setBasePath(BASE_PATH) .addHeader( "Authorization", - "Bearer " + getToken(CLIENT_ID_WRONG_SCOPE, SECRET_WRONG_SCOPE, 10) + "Bearer " + getToken(CLIENT_ID_WRONG_SCOPE, SECRET_WRONG_SCOPE, 60) ) .log(LogDetail.ALL) .addFilter(new ResponseLoggingFilter()) @@ -128,7 +128,7 @@ public static RequestSpecification getStream(String accept) { .setBasePath(BASE_PATH) .addHeader( "Authorization", - "Bearer " + getToken(CLIENT_ID, SECRET, 10) + "Bearer " + getToken(CLIENT_ID, SECRET, 60) ) .log(LogDetail.ALL) .addFilter(new ResponseLoggingFilter()) @@ -145,7 +145,7 @@ public static RequestSpecification getStream(String accept) { .setAccept(accept) .addHeader( "Authorization", - "Bearer " + getToken(CLIENT_ID, SECRET, 10) + "Bearer " + getToken(CLIENT_ID, SECRET, 60) ) .log(LogDetail.ALL) .addFilter(new ResponseLoggingFilter()) @@ -171,7 +171,7 @@ public static RequestSpecification getZTC() { .setBasePath(ZTC_BASE_PATH) .addHeader( "Authorization", - "Bearer " + getToken(ZTC_CLIENT_ID, ZTC_SECRET, 10) + "Bearer " + getToken(ZTC_CLIENT_ID, ZTC_SECRET, 60) ) .log(LogDetail.ALL) .addFilter(new ResponseLoggingFilter()) @@ -196,7 +196,7 @@ public static RequestSpecification getZRC() { .setBasePath(ZRC_BASE_PATH) .addHeader( "Authorization", - "Bearer " + getToken(ZRC_CLIENT_ID, ZRC_SECRET, 10) + "Bearer " + getToken(ZRC_CLIENT_ID, ZRC_SECRET, 60) ) .addHeader("Accept-Crs", "EPSG:4326") .addHeader("Content-Crs", "EPSG:4326") @@ -218,7 +218,7 @@ public static RequestSpecification getAC() { .setBasePath(AC_BASE_PATH) .addHeader( "Authorization", - "Bearer " + getToken(AC_CLIENT_ID, AC_SECRET, 10) + "Bearer " + getToken(AC_CLIENT_ID, AC_SECRET, 60) ) .log(LogDetail.ALL) .addFilter(new ResponseLoggingFilter()) From ad55a2f2d0353b63688f9cab9ca00ce9748b1520 Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Wed, 5 Apr 2023 16:57:30 +0200 Subject: [PATCH 28/33] =?UTF-8?q?=E2=9E=95=20added=20304=20check=20for=20h?= =?UTF-8?q?ead?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/nl/contezza/drc/service/EIOService.java | 13 +++++++++++++ .../EnkelvoudigInformatieObjectCachingTest.java | 6 +++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/main/java/nl/contezza/drc/service/EIOService.java b/src/main/java/nl/contezza/drc/service/EIOService.java index bc0348b..d6fcae8 100644 --- a/src/main/java/nl/contezza/drc/service/EIOService.java +++ b/src/main/java/nl/contezza/drc/service/EIOService.java @@ -363,6 +363,19 @@ public Response getEioIfNonMatch(String url, String eTag) { // @formatter:on } + public Response getHeadEioIfNonMatch(String url, String eTag) { + // @formatter:off + return given() + .spec(DRCRequestSpecification.getDefault()) + .header("If-None-Match", eTag) + .when() + .head(url.split("/v1")[1]) + .then() + .extract() + .response(); + // @formatter:on + } + public Response listEIO(String identificatie, String bronorganisatie, Integer page) { Map params = new HashMap(); if (identificatie != null) { diff --git a/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectCachingTest.java b/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectCachingTest.java index c1e5bc4..6b8109c 100644 --- a/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectCachingTest.java +++ b/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectCachingTest.java @@ -79,9 +79,13 @@ public void test_conditional_get_304() { Response res = eioService.getEIO(eioUrl, null); String eTag = "" + res.getHeader("ETag") + ""; - // Not modified + // Not modified for get res = eioService.getEioIfNonMatch(eioUrl, eTag); Assert.assertEquals(res.getStatusCode(), 304); + + // Not modified for head + res = eioService.getHeadEioIfNonMatch(eioUrl, eTag); + Assert.assertEquals(res.getStatusCode(), 304); } /** From dc064f1cce695f37edb8528f7709a1eb23dca796 Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Tue, 11 Apr 2023 13:26:46 +0200 Subject: [PATCH 29/33] =?UTF-8?q?=F0=9F=A7=A9=20added=20custom=20upload?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../drc/tests/custom/CustomUploadTest.java | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 src/test/java/nl/contezza/drc/tests/custom/CustomUploadTest.java diff --git a/src/test/java/nl/contezza/drc/tests/custom/CustomUploadTest.java b/src/test/java/nl/contezza/drc/tests/custom/CustomUploadTest.java new file mode 100644 index 0000000..0c7be66 --- /dev/null +++ b/src/test/java/nl/contezza/drc/tests/custom/CustomUploadTest.java @@ -0,0 +1,56 @@ +package nl.contezza.drc.tests.custom; + +import org.json.JSONObject; +import org.testng.Assert; +import org.testng.annotations.BeforeTest; +import org.testng.annotations.Test; + +import io.restassured.path.json.JsonPath; +import io.restassured.response.Response; +import nl.contezza.drc.dataprovider.DRCDataProvider; +import nl.contezza.drc.rest.RestTest; +import nl.contezza.drc.service.EIOService; +import nl.contezza.drc.service.ZTCService; + +public class CustomUploadTest extends RestTest { + + /** + * Create necessary dependencies when creating enkelvoudiginformatieobject. + */ + @BeforeTest(groups = "CustomUpload") + public void init() { + // Create random catalogi + ZTCService ztcService = new ZTCService(); + JsonPath json = new JsonPath(ztcService.createCatalogus().asString()); + + // Create informatieobjecttype + String catalogusUrl = json.getString("url").replace(ZTC_BASE_URI, ZTC_DOCKER_URI); + json = new JsonPath(ztcService.createInformatieObjectType(catalogusUrl).asString()); + informatieobjecttypeUrl = json.getString("url").replace(ZTC_BASE_URI, ZTC_DOCKER_URI); + + // @formatter:off + Response res = ztcService.publishInformatieObjectType(informatieobjecttypeUrl.substring(informatieobjecttypeUrl.lastIndexOf('/') + 1).trim()); + Assert.assertEquals(res.getStatusCode(), 200); + // @formatter:on + } + + @Test(groups = "CustomUpload") + public void test_bestandsdelen_when_create() { + + EIOService eioService = new EIOService(); + + JSONObject jsonObject = new JSONObject(DRCDataProvider.testCreate(informatieobjecttypeUrl)); + // jsonObject.put("inhoud", JSONObject.NULL); + jsonObject.remove("inhoud"); + jsonObject.put("bestandsomvang", "some content for file".getBytes().length); + + Response res = eioService.testCreate(jsonObject); + JsonPath json = new JsonPath(res.asString()); + + Assert.assertEquals(res.getStatusCode(), 201); + Assert.assertEquals(json.getList("bestandsdelen").size(), 1); + Assert.assertEquals(json.getBoolean("locked"), true); + Assert.assertEquals(json.getInt("bestandsomvang"), "some content for file".getBytes().length); + Assert.assertNull(res.getBody().path("inhoud")); + } +} From c24126cd07089bc5c992edbcd76a7b884a0c8052 Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Tue, 11 Apr 2023 15:37:32 +0200 Subject: [PATCH 30/33] =?UTF-8?q?=F0=9F=A7=A9=20added=20solr=20wait=20time?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../drc/tests/EnkelvoudigInformatieObjectZoekTest.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectZoekTest.java b/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectZoekTest.java index 41680da..176ce7a 100644 --- a/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectZoekTest.java +++ b/src/test/java/nl/contezza/drc/tests/EnkelvoudigInformatieObjectZoekTest.java @@ -50,6 +50,9 @@ public void test_zoek_uuid_in() { String url3 = new JsonPath(eioService.testCreate(informatieobjecttypeUrl).asString()).getString("url"); // @formatter:on + // Wait for Solr to be indexed + wait(30000); + String uuid1 = url1.substring(url1.lastIndexOf('/') + 1).trim(); String uuid2 = url2.substring(url2.lastIndexOf('/') + 1).trim(); String uuid3 = url3.substring(url3.lastIndexOf('/') + 1).trim(); From d8006d25ad4fc108055e45a37ddca04cf4169ef1 Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Wed, 12 Apr 2023 08:50:34 +0200 Subject: [PATCH 31/33] =?UTF-8?q?=F0=9F=A7=A9=20added=20bestandsdelen=20fl?= =?UTF-8?q?ow=20test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../drc/tests/custom/CustomUploadTest.java | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/src/test/java/nl/contezza/drc/tests/custom/CustomUploadTest.java b/src/test/java/nl/contezza/drc/tests/custom/CustomUploadTest.java index 0c7be66..eb982f8 100644 --- a/src/test/java/nl/contezza/drc/tests/custom/CustomUploadTest.java +++ b/src/test/java/nl/contezza/drc/tests/custom/CustomUploadTest.java @@ -1,5 +1,7 @@ package nl.contezza.drc.tests.custom; +import java.io.File; + import org.json.JSONObject; import org.testng.Assert; import org.testng.annotations.BeforeTest; @@ -10,6 +12,7 @@ import nl.contezza.drc.dataprovider.DRCDataProvider; import nl.contezza.drc.rest.RestTest; import nl.contezza.drc.service.EIOService; +import nl.contezza.drc.service.UploadService; import nl.contezza.drc.service.ZTCService; public class CustomUploadTest extends RestTest { @@ -53,4 +56,49 @@ public void test_bestandsdelen_when_create() { Assert.assertEquals(json.getInt("bestandsomvang"), "some content for file".getBytes().length); Assert.assertNull(res.getBody().path("inhoud")); } + + @Test(groups = "CustomUpload") + public void test_upload_flow_bestandsdelen() { + UploadService uploadService = new UploadService(); + EIOService eioService = new EIOService(); + + // Create file with empty inhoud + JSONObject jsonObject = new JSONObject(DRCDataProvider.testCreate(informatieobjecttypeUrl)); + jsonObject.put("inhoud", JSONObject.NULL); + jsonObject.put("bestandsomvang", "some content for file".getBytes().length); + + Response res = eioService.testCreate(jsonObject); + String eioUrl = res.body().path("url"); + + String uploadUrl = res.body().path("bestandsdelen[0].url"); + String lock = res.body().path("lock"); + + // Upload file part + File file = uploadService.createTextFile("some content for file"); + res = uploadService.uploadFile(uploadUrl, lock, file); + + Assert.assertEquals(res.getStatusCode(), 200); + + // Validate if still is locked + res = eioService.getEIO(eioUrl, null); + + JsonPath json = new JsonPath(res.asString()); + Assert.assertEquals(res.getStatusCode(), 200); + Assert.assertEquals(json.getList("bestandsdelen").size(), 1); + Assert.assertEquals(json.getBoolean("locked"), true); + + // Unlock + res = eioService.unlock(eioUrl, lock); + + Assert.assertEquals(res.getStatusCode(), 204); + + // Validate if all is normal + res = eioService.getEIO(eioUrl, null); + + json = new JsonPath(res.asString()); + Assert.assertEquals(res.getStatusCode(), 200); + Assert.assertNotNull(res.getBody().path("inhoud")); + Assert.assertEquals(json.getList("bestandsdelen").size(), 0); + Assert.assertEquals(json.getBoolean("locked"), false); + } } From 7a549aae0b7e45eb5a8b78d5aaa70f59592ffbd0 Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Wed, 19 Apr 2023 15:46:40 +0200 Subject: [PATCH 32/33] =?UTF-8?q?=E2=9E=95=20added=20unit=20test=20update?= =?UTF-8?q?=20IOT?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../drc/tests/custom/CustomUpdateIOT.java | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/test/java/nl/contezza/drc/tests/custom/CustomUpdateIOT.java diff --git a/src/test/java/nl/contezza/drc/tests/custom/CustomUpdateIOT.java b/src/test/java/nl/contezza/drc/tests/custom/CustomUpdateIOT.java new file mode 100644 index 0000000..347f29c --- /dev/null +++ b/src/test/java/nl/contezza/drc/tests/custom/CustomUpdateIOT.java @@ -0,0 +1,67 @@ +package nl.contezza.drc.tests.custom; + +import org.json.JSONObject; +import org.testng.Assert; +import org.testng.annotations.BeforeTest; +import org.testng.annotations.Test; + +import io.restassured.path.json.JsonPath; +import io.restassured.response.Response; +import nl.contezza.drc.rest.RestTest; +import nl.contezza.drc.service.EIOService; +import nl.contezza.drc.service.ZTCService; + +/** + * Some custom unit tests which are not mapped to any python scripts. + */ + +// @Log4j2 +public class CustomUpdateIOT extends RestTest { + + private String informatieobjecttypeUrl2 = null; + + /** + * Create necessary dependencies. + */ + @BeforeTest(groups = "CustomUpdateIOT") + public void init() { + // Create random catalogi + ZTCService ztcService = new ZTCService(); + JsonPath json = new JsonPath(ztcService.createCatalogus().asString()); + + // Create informatieobjecttype + String catalogusUrl = json.getString("url").replace(ZTC_BASE_URI, ZTC_DOCKER_URI); + json = new JsonPath(ztcService.createInformatieObjectType(catalogusUrl).asString()); + informatieobjecttypeUrl = json.getString("url").replace(ZTC_BASE_URI, ZTC_DOCKER_URI); + + // Create informatieobjecttype 2 + json = new JsonPath(ztcService.createInformatieObjectType(catalogusUrl).asString()); + informatieobjecttypeUrl2 = json.getString("url").replace(ZTC_BASE_URI, ZTC_DOCKER_URI); + + Response res = ztcService.publishInformatieObjectType( + informatieobjecttypeUrl.substring(informatieobjecttypeUrl.lastIndexOf('/') + 1).trim()); + Assert.assertEquals(res.getStatusCode(), 200); + + res = ztcService.publishInformatieObjectType( + informatieobjecttypeUrl2.substring(informatieobjecttypeUrl2.lastIndexOf('/') + 1).trim()); + Assert.assertEquals(res.getStatusCode(), 200); + } + + @Test(groups = "CustomUpdateIOT") + public void test_update_IOT() { + EIOService eioService = new EIOService(); + + // Create EIO + String eioUrl = new JsonPath(eioService.testCreate(informatieobjecttypeUrl).asString()).getString("url"); + + // Do lock + JsonPath json = new JsonPath(eioService.lock(eioUrl).asString()); + + JSONObject body = new JSONObject(); + body.put("informatieobjecttype", informatieobjecttypeUrl2); + body.put("lock", json.getString("lock")); + + Response res = eioService.partialUpdate(eioUrl, body); + Assert.assertEquals(res.getStatusCode(), 200); + } +} \ No newline at end of file From 23226d95f7fd56a6ec4c53390932c6148a4dd115 Mon Sep 17 00:00:00 2001 From: Rick de Rooij Date: Wed, 19 Apr 2023 15:54:08 +0200 Subject: [PATCH 33/33] disable test --- .../java/nl/contezza/drc/tests/custom/CustomUpdateIOT.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/test/java/nl/contezza/drc/tests/custom/CustomUpdateIOT.java b/src/test/java/nl/contezza/drc/tests/custom/CustomUpdateIOT.java index 347f29c..1f2068e 100644 --- a/src/test/java/nl/contezza/drc/tests/custom/CustomUpdateIOT.java +++ b/src/test/java/nl/contezza/drc/tests/custom/CustomUpdateIOT.java @@ -3,7 +3,6 @@ import org.json.JSONObject; import org.testng.Assert; import org.testng.annotations.BeforeTest; -import org.testng.annotations.Test; import io.restassured.path.json.JsonPath; import io.restassured.response.Response; @@ -47,7 +46,7 @@ public void init() { Assert.assertEquals(res.getStatusCode(), 200); } - @Test(groups = "CustomUpdateIOT") + // @Test(groups = "CustomUpdateIOT") public void test_update_IOT() { EIOService eioService = new EIOService();